支持注入userServiceDao的bean来根据spring security身份认证的username获取用户身份认证的信息

This commit is contained in:
lsy
2017-12-05 18:36:05 +08:00
parent 1d81889ab4
commit 8eb850d1dc
2 changed files with 23 additions and 3 deletions
@@ -1,5 +1,6 @@
package com.micro.fast.security.browser.service;
package com.micro.fast.security.browser.config.component;
import com.micro.fast.security.browser.service.UserService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@@ -11,6 +12,8 @@ import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
/**
* 自定义根据用户名获取密码方法替换spring security的默认逻辑
*/
@@ -22,6 +25,9 @@ public class MsUserDetialsService implements UserDetailsService {
@Autowired
private PasswordEncoder passwordEncoder;
@Resource(name = "userServiceImpl")
private UserService userService;
/**
* 处理用户的密码获取信息
* @param username UserDetails中包含用户的详细信息,在user中返回信息来进行详细的设定比如用户是否被锁定
@@ -31,8 +37,11 @@ public class MsUserDetialsService implements UserDetailsService {
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
log.info("根据username:{}获取密码",username);
//从数据库中去查找用户的密码 1112 是从数据库中查询出来的用户的密
return new User(username,passwordEncoder.encode("1112"), AuthorityUtils.commaSeparatedStringToAuthorityList("admin"));
//从数据库中根据用户名获取用户的详细身份认证信息
/*User userByUsername = userService.getUserByUsername(username);
return userByUsername;*/
//从数据库中去查找用户的密码 admin 是从数据库中查询出来的用户的密
return new User(username,passwordEncoder.encode("admin"), AuthorityUtils.commaSeparatedStringToAuthorityList("admin"));
}
@@ -0,0 +1,11 @@
package com.micro.fast.security.browser.service;
import org.springframework.security.core.userdetails.User;
import org.springframework.stereotype.Service;
/**
* 用于根据spring security传入的username获取用户的详细信息
*/
public interface UserService {
User getUserByUsername(String username);
}