com.bac.accountserviceapp.data.AccountServiceUserDetails.java Source code

Java tutorial

Introduction

Here is the source code for com.bac.accountserviceapp.data.AccountServiceUserDetails.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.bac.accountserviceapp.data;

import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;

/**
 *
 * @author user0001
 */
public class AccountServiceUserDetails implements UserDetails {

    private static final long serialVersionUID = 1L;
    private String password;
    private String userName;
    private boolean accountNonExpired = true;
    private boolean accountNonLocked = true;
    private boolean credentialsNonExpired = true;
    private boolean enabled;
    //
    private final Character active = 'Y';
    private final String authoritySeparator = "::";
    private final String authorityFormat = "%s%s%s";

    private final Set<SimpleGrantedAuthority> authorities = new HashSet<>();
    // logger    
    private static final Logger logger = LoggerFactory.getLogger(AccountServiceUserDetails.class);

    public AccountServiceUserDetails(User user, Collection<? extends UserDetailsAuthority> userDetailsAuthorities) {

        if (user != null) {

            userName = user.getUserEmail();
            password = new String(user.getUserPassword());
            enabled = user.isEnabled();
        }

        if (userDetailsAuthorities == null) {
            return;
        }
        for (UserDetailsAuthority uda : userDetailsAuthorities) {
            Application application = uda.getApplication();
            AccessLevel accessLevel = uda.getAccessLevel();
            if (application != null && accessLevel != null) {
                if (application.isEnabled()) {
                    String serviceRole = accessLevel.getAccountServiceRole() == null ? "No available role"
                            : accessLevel.getAccountServiceRole().name();
                    String authority = String.format(authorityFormat, application.getName(), authoritySeparator,
                            serviceRole);
                    authorities.add(new SimpleGrantedAuthority(authority));
                }
            }
        }
    }

    @Override
    public Collection<? extends GrantedAuthority> getAuthorities() {

        return authorities;
    }

    @Override
    public String getPassword() {

        return password;
    }

    @Override
    public String getUsername() {

        return userName;
    }

    @Override
    public boolean isAccountNonExpired() {

        return accountNonExpired;
    }

    @Override
    public boolean isAccountNonLocked() {

        return accountNonLocked;
    }

    @Override
    public boolean isCredentialsNonExpired() {

        return credentialsNonExpired;
    }

    @Override
    public boolean isEnabled() {

        return enabled;
    }
}