1. 程式人生 > >cas 單點登錄

cas 單點登錄

listen === -s 改名 ida onf img get www.

學習鏈接:

https://blog.csdn.net/qq_24708791/article/details/78535565

https://mianhuaman.iteye.com/blog/2224250

https://blog.csdn.net/ae6623/article/details/9494601

https://www.cnblogs.com/vhua/p/cas_4.html

1. 配置cas.server

修改服務ip server.name=http://localhost:8080

Cas服務端其實就是一個war包。

在資源\cas\source\cas-server-4.0.0-release\cas-server-4.0.0\modules目錄下

cas-server-webapp-4.0.0.war 將其改名為cas.war放入tomcat目錄下的webapps下。啟動tomcat自動解壓war包。瀏覽器輸入http://localhost:8080/cas/login ,可看到登錄頁面

固定的用戶名和密碼4.0 casuser /Mellon 3.5 admin/admin

2. cas.client相關的jar 放在項目的lib

3. web.xm中配置認證校驗

技術分享圖片

<!-- ========== sso start =========-->

<!-- SingleSignOutHttpSessionListener -->

<listener>

<listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>

</listener>

<!-- SingleSignOutFilter -->

<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>/*</url-pattern>

</filter-mapping>

<!-- AuthenticationFilter -->

<filter>

<filter-name>CASFilter</filter-name>

<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>

<init-param>

<param-name>casServerLoginUrl</param-name>

<param-value>http://10.68.3.112:8088/cas/login</param-value>

</init-param>

<init-param>

<param-name>serverName</param-name>

<param-value>http://10.68.3.112:8088</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>CASFilter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

<!--

TicketValidationFilter

-->

<filter>

<filter-name>CAS Validation Filter</filter-name>

<filter-class>org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>

<init-param>

<param-name>casServerUrlPrefix</param-name>

<param-value>http://10.68.3.112:8088/cas</param-value>

</init-param>

<init-param>

<param-name>serverName</param-name>

<param-value>http://10.68.3.112:8088</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>CAS Validation Filter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

<!-- HttpServletRequestWrapperFilter,HttpServletRequest?getRemoteUser()

-->

<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>/*</url-pattern>

</filter-mapping>

<!--

AssertionThreadLocalFilter,AssertionHolder.getAssertion().getPrincipal().getName()

-->

<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>/*</url-pattern>

</filter-mapping>

<!-- ============ sso end ================-->

4. 獲取用戶名(三種方式)

4.1 getUserPrincipal()

AttributePrincipal principal = (AttributePrincipal) request.getUserPrincipal();

String username = principal.getName();

4.2 getRemoteUser()

<%

String loginName1 = request.getRemoteUser();

%>

<br>request.getRemoteUser(): <%=loginName1%>;<br/>

4.3 session 中獲取

<%

Object object =request.getSession().getAttribute("_const_cas_assertion_");

Assertion assertion =(Assertion)object;

String loginName3 =assertion.getPrincipal().getName();

%>

request.getSession().getAttribute("_const_cas_assertion_").getPrincipal().getName():<%=loginName3%><br/>

cas 單點登錄