복붙노트

[SPRING] UserDetails의 사용자 지정 구현 예제

SPRING

UserDetails의 사용자 지정 구현 예제

스프링 보안 3에서 커스텀 UserDetails 객체를 만드는 예제를 찾고있다. 그리고 누군가가 도울 수 있으면, 나는 고맙다.

해결법

  1. ==============================

    1.여기 내가 사용한 것 :

    여기 내가 사용한 것 :

    public class CustomUserDetails implements UserDetails {
        private  User user;
    
        public CustomUserDetails(final User _user) {
                this.user = _user;
        }
    
        public CustomUserDetails() {
        }
    
        @Override
        public Collection<GrantedAuthority> getAuthorities() {
                 final Set<GrantedAuthority> _grntdAuths = new HashSet<GrantedAuthority>();
    
         List<UserRole> _roles = null;
    
         if (user!=null) {
                 _roles = user.getRoles();
         }
    
         if (_roles!=null) {
                 for (UserRole _role : _roles) {
                         _grntdAuths.add(new GrantedAuthorityImpl(_role.getRole()));
                 }
         }
    
         return _grntdAuths;
        }
    
        @Override
        public String getPassword() {
                return user.getPassword();
        }
     @Override
        public String getUsername() {
                if (this.user == null) {
                        return null;
                }
                return this.user.getUser_name();
        }
    
        @Override
        public boolean isAccountNonExpired() {
                return this.user.isAccountNonExpired();
        }
    
        @Override
        public boolean isAccountNonLocked() {
                return this.user.isAccountNonLocked();
        }
    
        @Override
        public boolean isCredentialsNonExpired() {
                return this.user.isCredentialsNonExpired();
        }
    
        @Override
        public boolean isEnabled() {
                return this.user.isEnabled();
        }
    
        public User getUser() {
                return user;
        }
    
        @Override
        public String toString() {
                return "CustomUserDetails [user=" + user + "]";
        }
    }
    
  2. from https://stackoverflow.com/questions/7737602/example-of-custom-implementation-of-userdetails by cc-by-sa and MIT license