Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MaxKey单点登录官方(MaxKeyTop)
MaxKey
提交
bffb90cc
MaxKey
项目概览
MaxKey单点登录官方(MaxKeyTop)
/
MaxKey
10 个月 前同步成功
通知
75
Star
3
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
MaxKey
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
bffb90cc
编写于
3月 12, 2020
作者:
MaxKey单点登录官方
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update cas.md
上级
b8392ae3
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
3 addition
and
204 deletion
+3
-204
docs/sso/cas.md
docs/sso/cas.md
+3
-204
未找到文件。
docs/sso/cas.md
浏览文件 @
bffb90cc
...
...
@@ -14,213 +14,12 @@
jar包依赖如下
cas-client-core-3.2.1.jar
commons-codec-1.4.jar
commons-logging-1.1.1.jar
slf4j-api-1.5.11.jar
https://github.com/shimingxy/MaxKey-Demo/tree/master/maxkey-demo-cas/lib
web.xml配置
<pre><code
class=
"xml hljs"
>
<
?xml version="1.0" encoding="UTF-8"?
>
<
web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5"
>
<
display-name
><
/display-name
>
<
listener
>
<
listener-class
>
org.jasig.cas.client.session.SingleSignOutHttpSessionListener
<
/listener-class
>
<
/listener
>
<
filter
>
<
filter-name
>
CAS Single Sign Out Filter
<
/filter-name
>
<
filter-class
>
org.jasig.cas.client.session.SingleSignOutFilter
<
/filter-class
>
<
/filter
>
<
filter-mapping
>
<
filter-name
>
CAS Single Sign Out Filter
<
/filter-name
>
<
url-pattern
>
/index.jsp
<
/url-pattern
>
<
/filter-mapping
>
<
filter
>
<
filter-name
>
CAS Filter
<
/filter-name
>
<
filter-class
>
org.jasig.cas.client.authentication.AuthenticationFilter
<
/filter-class
>
<
!-- cas server login url --
>
<
init-param
>
<
param-name
>
casServerLoginUrl
<
/param-name
>
<
param-value
>>
https://sso.maxkey.org/maxkey/authz/cas/
<
/param-value
>
<
/init-param
>
<
!-- cas client url, in end of url / is required --
>
<
init-param
>
<
param-name
>
serverName
<
/param-name
>
<
param-value
>
http://cas.demo.maxkey.org:8080/
<
/param-value
>
<
/init-param
>
<
/filter
>
<
filter-mapping
>
<
filter-name
>
CAS Filter
<
/filter-name
>
<
url-pattern
>
/index.jsp
<
/url-pattern
>
<
/filter-mapping
>
<!-- Cas10TicketValidationFilter Cas20ProxyReceivingTicketValidationFilter -->
<filter>
<filter-name>CAS Validation Filter</filter-name>
<filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
<!-- cas server login url -->
<init-param>
<param-name>casServerUrlPrefix</param-name>
<param-value>https://sso.maxkey.org/maxkey/authz/cas/</param-value>
</init-param>
<!-- cas client url -->
<init-param>
<param-name>serverName</param-name>
<param-value>http://cas.demo.maxkey.org:8080/</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CAS Validation Filter</filter-name>
<url-pattern>/index.jsp</url-pattern>
</filter-mapping>
<filter>
<filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
<filter-class>
org.jasig.cas.client.util.HttpServletRequestWrapperFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
<url-pattern>/index.jsp</url-pattern>
</filter-mapping>
<filter>
<filter-name>CAS Assertion Thread Local Filter</filter-name>
<filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CAS Assertion Thread Local Filter</filter-name>
<url-pattern>/index.jsp</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<
/web-app
>
</code></pre>
https://github.com/shimingxy/MaxKey-Demo/blob/master/maxkey-demo-cas/src/main/webapp/WEB-INF/web.xml
JSP实现Code
<pre><code
class=
"jsp hljs"
>
<
%@ page language="java" import="java.util.
*
" pageEncoding="utf-8"%
>
<
%@ page language="java" import="java.util.Map.Entry" %
>
<
%@ page language="java" import="org.apache.commons.codec.binary.Base64" %
>
<
%@ page language="java" import="org.jasig.cas.client.authentication.AttributePrincipal" %
>
<
%@ page language="java" import="org.jasig.cas.client.validation.Assertion" %
>
<
%@ page language="java" import="org.jasig.cas.client.util.AbstractCasFilter" %
>
<
%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
System.out.println("CAS Assertion Success . ");
Assertion assertion = (Assertion) request.getSession().getAttribute(AbstractCasFilter.CONST_CAS_ASSERTION);
String username= assertion.getPrincipal().getName();
%
>
<
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
>
<
html
>
<
head
>
<
base href="
<
%=basePath%
>
"
>
<
title
>
Demo CAS
<
/title
>
<
meta http-equiv="pragma" content="no-cache"
>
<
meta http-equiv="cache-control" content="no-cache"
>
<
meta http-equiv="expires" content="0"
>
<
meta http-equiv="keywords" content="keyword1,keyword2,keyword3"
>
<
meta http-equiv="description" content="CAS Demo"
>
<
link rel="shortcut icon" type="image/x-icon" href="
<
%=basePath %
>
/images/favicon.ico"/
>
<
!--
<
link rel="stylesheet" type="text/css" href="styles.css"
>
--
>
<
style type="text/css"
>
body{
margin: 0;
margin-top: 0px;
margin-left: auto;
margin-right: auto;
padding: 0 0 0 0px;
font-size: 12px;
text-align:center;
float:center;
font-family: "Arial", "Helvetica", "Verdana", "sans-serif";
}
.container {
width: 990px;
margin-left: auto;
margin-right: auto;
padding: 0 10px
}
table.datatable {
border: 1px solid #d8dcdf;
border-collapse:collapse;
border-spacing:0;
width: 100%;
}
table.datatable th{
border: 1px solid #d8dcdf;
border-collapse:collapse;
border-spacing:0;
height: 40px;
}
table.datatable td{
border: 1px solid #d8dcdf;
border-collapse:collapse;
border-spacing:0;
height: 40px;
}
table.datatable td.title{
text-align: center;
font-size: 20px;
font-weight: bold;
}
<
/style
>
<
/head
>
<
body
>
<
div class="container"
>
<
table class="datatable"
>
<
tr
>
<
td colspan="2" class="title"
>
CAS Demo for MaxKey
<
/td
>
<
/tr
>
<
tr
>
<
td
>
CAS Logo
<
/td
>
<
td
>
<
img src="
<
%=basePath %
>
/images/cas.png"/
><
/td
>
<
/tr
>
<
tr
>
<
td width="50%"
>
CAS Assertion
<
/td
>
<
td
><
%=username %
><
/td
>
<
/tr
>
<
tr
>
<
td
>
CAS Has Attributes
<
/td
>
<
td
><
%=!assertion.getPrincipal().getAttributes().isEmpty() %
>
size :
<
%=assertion.getPrincipal().getAttributes().size() %
><
/td
>
<
/tr
>
<
%
Map
<
String, Object
>
attMap = assertion.getPrincipal().getAttributes();
for (Entry
<
String, Object
>
entry : attMap.entrySet()) {
String attributeValue=entry.getValue()==null?"":entry.getValue().toString();
System.out.println("attributeValue : "+attributeValue);
if(attributeValue.startsWith("base64:")){
attributeValue=new String(Base64.decodeBase64(attributeValue.substring("base64:".length())),"UTF-8");
}
%
>
<
tr
>
<
td
>
CAS
<
%=entry.getKey() %
>
<
/td
>
<
td
><
%=attributeValue %
><
/td
>
<
/tr
>
<
%}%
>
<
/table
>
<
/div
>
<
/body
>
<
/html
>
</code></pre>
\ No newline at end of file
https://github.com/shimingxy/MaxKey-Demo/blob/master/maxkey-demo-cas/src/main/webapp/index.jsp
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录