Spring Security Role Prefix and Custom User Details Service

10,792
<beans:bean id="roleVoter" class="org.springframework.security.access.vote.RoleVoter">
    <beans:property name="rolePrefix" value="" />
</beans:bean>

just like this

Share:
10,792
Mike Flynn
Author by

Mike Flynn

I am the founder and CEO of Exposure Events. Exposure Events is a tournament and league management system delivering online scheduling and conflict checker, live results, apps, free directory and more.

Updated on June 04, 2022

Comments

  • Mike Flynn
    Mike Flynn almost 2 years

    How do I set the role prefix to "" with a custom user details service in Spring?

        <beans:bean id="authService" class="com.cisco.badges.business.services.AuthenticationService"/>
    
    <authentication-manager>
            <authentication-provider user-service-ref="authService">
                <password-encoder ref="passwordEncoder">
                    <salt-source ref="saltSource" />
                </password-encoder>
            </authentication-provider>
        </authentication-manager>
    

    @Service("authService")
    public class AuthenticationService extends BaseService implements UserDetailsService, IAuthenticationService {
    
        @Autowired
        IUserRepository userRepository;
    
        @Autowired
        IAuthorityRepository authorityRepository;
    
        public AuthenticationService() {
    
        }
    
        public UserDetails loadUserByUsername(String username)
                throws UsernameNotFoundException {
    
            User user = userRepository.findByUsername(username);
    
            if(user == null)
                throw new UsernameNotFoundException("No user with username '" + username + "' found!");
    
            List<GrantedAuthority> authList = new ArrayList<GrantedAuthority>();
    
            for (Role role : user.getRoles()) {
                authList.add(new GrantedAuthorityImpl(role.getName()));
            }
    
            UserAuthentication userAuthentication = new UserAuthentication(user.getUsername(), user.getPassword(), user.getEnabled() == 0 ? false : true, true, true, true, authList);
    
            userAuthentication.setSalt(user.getSalt());
            userAuthentication.setId(user.getId());
    
            return (UserDetails)userAuthentication;
        }
    }