//第一步:写入pom文件jar包坐标
<!-- 单点登录安全框架 -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
</dependency>
<!--cas的客户端 -->
<dependency>
<groupId>net.unicon.cas</groupId>
<artifactId>cas-client-autoconfig-support</artifactId>
<version>2.2.0-GA</version>
<exclusions>
<exclusion>
<groupId>org.jasig.cas.client</groupId>
<artifactId>cas-client-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.jasig.cas.client</groupId>
<artifactId>cas-client-core</artifactId>
<version>3.5.0</version>
</dependency>
//第二步,获取登录账户用于权限管理
//获取CAS单点登录账户名的两种方法
@RestController
@RequestMapping("/CASUtil")
public class CASUtil {
/**
* 从cas中获取用户名
*
* @param request
* @return
*/
@LoginCheck(check = false)//不登录也能访问
@RequestMapping("/getUserName2")
public static String getAccountNameFromCas(HttpServletRequest request) {
Assertion assertion = (Assertion) request.getSession().getAttribute(AbstractCasFilter.CONST_CAS_ASSERTION);
if(assertion!= null){
AttributePrincipal principal = assertion.getPrincipal();
return principal.getName();
}else return null;
}
@LoginCheck(check = false)//不登录也能访问
@RequestMapping("/getUserName")
public static String getUserName(HttpServletRequest request) {
String personCode = “”; //账户名
AssertionImpl assertion = (AssertionImpl) request.getSession().getAttribute(“const_cas_assertion”);
if(assertion!=null){
AttributePrincipal principal = assertion.getPrincipal();
if(principal!=null){
personCode = principal.getName();
return personCode;
}else{
return null;
}
}else{
return null;
}
}
}
//第三步springboot 配置文件配置
#cas config
spring.cas.sign-out-filters=/logout
sprin