SecurityUtils.java
1.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package com.bsth.security.util;
import com.bsth.entity.sys.Role;
import com.bsth.entity.sys.SecurityUser;
import com.bsth.entity.sys.SysUser;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
/**
* @author PanZhao
* @ClassName: SecurityUtils
* @date 2016年3月30日 上午11:28:24
*/
public class SecurityUtils {
static Logger logger = LoggerFactory.getLogger(SecurityUtils.class);
/**
* @return SysUser 返回类型
* @throws
* @Title: getCurrentUser
* @Description: TODO(获取当前用户)
*/
public static SysUser getCurrentUser() {
SysUser user = null;
try {
user = (SysUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
} catch (Exception e) {
logger.error("", e);
}
return user;
}
public static void login(SysUser user, HttpServletRequest request) {
SecurityUser securityUser = new SecurityUser(user);
SecurityContext sContext = SecurityContextHolder.getContext();
List<GrantedAuthority> grantedAuths = new ArrayList<>();
Set<Role> set = user.getRoles();
for(Role r : set){
grantedAuths.add(new SimpleGrantedAuthority(r.getCodeName()));
}
sContext.setAuthentication(new UsernamePasswordAuthenticationToken(securityUser, securityUser.getAuthorities(), grantedAuths));
request.getSession(true).setAttribute("SPRING_SECURITY_CONTEXT", sContext);
}
}