Spring Security 角色前缀和自定义用户详细信息服务 [英] Spring Security Role Prefix and Custom User Details Service
本文介绍了Spring Security 角色前缀和自定义用户详细信息服务的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何在 Spring 中使用自定义用户详细信息服务将角色前缀设置为 ""
?
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;
}
}
推荐答案
<beans:bean id="roleVoter" class="org.springframework.security.access.vote.RoleVoter">
<beans:property name="rolePrefix" value="" />
</beans:bean>
就这样
这篇关于Spring Security 角色前缀和自定义用户详细信息服务的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文