/* * Copyright (c) 2005-2011 Grameen Foundation USA * All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or * implied. See the License for the specific language governing * permissions and limitations under the License. * * See also http://www.apache.org/licenses/LICENSE-2.0.html for an * explanation of the license and how it is applied. */ package org.mifos.security; import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.userdetails.UserDetails; /** * */ @SuppressWarnings("PMD") @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="SE_NO_SERIALVERSIONID", justification="should disable at filter level and also for pmd - not important for us") public class MifosUser implements UserDetails { private final String username; private final byte[] password; private final boolean enabled; private final boolean accountNonExpired; private final boolean credentialsNonExpired; private final boolean accountNonLocked; private final Collection<GrantedAuthority> authorities; private final int userId; private final Short branchId; private final Short levelId; private final List<Short> roleIds; private Short preferredLocaleId; @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="EI_EXPOSE_REP", justification="ignoring for now..") public MifosUser(int userId, Short branchId, Short levelId, List<Short> roleIds, String username, byte[] password, boolean enabled, boolean accountNonExpired, boolean credentialsNonExpired, boolean accountNonLocked, Collection<GrantedAuthority> authorities, Short preferredLocaleId) { this.levelId = levelId; this.roleIds = new ArrayList<Short>(roleIds); this.username = username; this.password = password; this.enabled = enabled; this.accountNonExpired = accountNonExpired; this.credentialsNonExpired = credentialsNonExpired; this.accountNonLocked = accountNonLocked; this.authorities = authorities; this.userId = userId; this.branchId = branchId; this.preferredLocaleId = preferredLocaleId; } public int getUserId() { return this.userId; } @Override public Collection<GrantedAuthority> getAuthorities() { return this.authorities; } @Override public String getPassword() { return new String(password); } @edu.umd.cs.findbugs.annotations.SuppressWarnings(value="EI_EXPOSE_REP", justification="ignoring for now..") public byte[] getPasswordAsBytes() { return password; } @Override public String getUsername() { return this.username; } @Override public boolean isAccountNonExpired() { return this.accountNonExpired; } @Override public boolean isAccountNonLocked() { return this.accountNonLocked; } @Override public boolean isCredentialsNonExpired() { return this.credentialsNonExpired; } @Override public boolean isEnabled() { return this.enabled; } public Short getBranchId() { return this.branchId; } public Short getLevelId() { return this.levelId; } public List<Short> getRoleIds() { return this.roleIds; } public Short getPreferredLocaleId() { return preferredLocaleId; } public void setPreferredLocaleId(Short preferredLocaleId) { this.preferredLocaleId = preferredLocaleId; } }