2023-03-08 14:18:18 +08:00

75 lines
2.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# cas-springboot-demo使用
源代码地址 https://gitee.com/dromara/MaxKey/tree/main/integrations/cas-springboot-demo
感谢 xiazhenyou 提供Demo。
# cas-springboot-demo
基于spring boot配置cas客户端
demo分别写了三个请求:拦截请求 test1/index,test1/index1 以及不拦截请求test1/index2,
## 第一步引入cas 客户端所需包
<dependency>
<groupId>net.unicon.cas</groupId>
<artifactId>cas-client-autoconfig-support</artifactId>
<version>2.3.0-GA</version>
</dependency>
## 第二部配置spring boot 配置文件
```
server:
port: 8989
cas:
# cas服务端地址
server-url-prefix: http://sso.maxkey.top/sign/authz/cas/
# cas服务端登陆地址
server-login-url: http://sso.maxkey.top/sign/authz/cas/login
# 客户端访问地址
client-host-url: http://localhost:8989/
# 认证方式默认cas
validation-type: cas
# 客户端需要拦截的URL地址
authentication-url-patterns:
- /test1/index
- /test1/index1
```
扩展配置项
````
cas.authentication-url-patterns
cas.validation-url-patterns
cas.request-wrapper-url-patterns
cas.assertion-thread-local-url-patterns
cas.gateway
cas.use-session
cas.redirect-after-validation
cas.allowed-proxy-chains
cas.proxy-callback-url
cas.proxy-receptor-url
cas.accept-any-proxy
server.context-parameters.renew
````
## 第三部 在application启动类上加上 @EnableCasClient 注解
```java
@SpringBootApplication
@EnableCasClient
public class CasClientDemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
```
## 第四步 在代码中获取登录用户信息
``` java
@GetMapping("test1/index1")
public String index1(HttpServletRequest request){
String token =request.getParameter("token");
System.out.println("token : "+token);
Assertion assertion = (Assertion) request.getSession().getAttribute(AbstractCasFilter.CONST_CAS_ASSERTION);
String username= assertion.getPrincipal().getName();
System.out.println(username);
return "test index cas拦截正常,登录账号:"+username;
}
```