cas4.2 使用客户端自定义页面登录一种解决方法

参考:https://wiki.jasig.org/display/CAS/Using+CAS+without+the+Login+Screen

 

https://wiki.jasig.org/display/CAS/Using+CAS+from+external+link+or+custom+external+form

 

服务端:

casLoginView.jsp

 

<jsp:directive.include file="includes/top.jsp" />

<%
String auto = request.getParameter("auto");
if (auto != null && auto.equals("true")) {
%>
<html>
    <head>
        <script language="javascript">
            function doAutoLogin() {
                document.forms[0].submit();
            }
        </script>
    </head>
    <body οnlοad="doAutoLogin();">

        <form id="fm1" method="post" action="<%= request.getContextPath() %>/login?service=<%= request.getParameter("service") %>">
     
            <input type="hidden" name="lt" value="${loginTicket}" />
            <input type="hidden" name="execution" value="${flowExecutionKey}" />
            <input type="hidden" name="_eventId" value="submit" />

            <input type="hidden" name="username" value="<%= request.getParameter("username") %>" />
            <input type="hidden" name="password" value="<%= request.getParameter("password") %>" />

            <% if ("true".equals(request.getParameter("rememberMe"))) {%>
                <input type="hidden" name="rememberMe" value="true" />
            <% } %>

            <input type="submit" value="Submit" style="visibility: hidden;" />
        </form>
    </body>
</html>
<%
} else {
%>

//................
//这里把casLoginView.jsp 原来的东西粘贴过来。不使用客户端登录页面时候,使用默认页面登录

<%
}
%>

<jsp:directive.include file="includes/bottom.jsp" />

 

 

 

客户端:

 

<html>
<head />
<body>
    <form method="POST" action="https://cas.example.com/cas/">
        <p>Username : <input type="text" name="username" /></p>
        <p>Password : <input type="password" name="password" /></p>
        <p>Remember me : <input type="checkbox" name="rememberMe" value="true" /></p>
        <p><input type="submit" value="Login !" /></p>
        <input type="hidden" name="auto" value="true" />
        <input type="hidden" name="service" value="http://app.example.com/myapp/" />
    </form>
</body>
</html>

 

 

 

服务端地址:
https://cas.example.com/cas/

客户端地址:
http://app.example.com/myapp/

 

 

 

CAS(Central Authentication Service)是一种单点登录协议,用于实现在多个应用系统中进行统一的身份认证和授权。CAS客户端是指集成CAS协议的应用系统,用于与CAS服务器进行通信并实现单点登录功能。 以下是CAS客户端集成单点登录的代码示例: ```java // 引入CAS客户端依赖 <dependency> <groupId>org.jasig.cas.client</groupId> <artifactId>cas-client-core</artifactId> <version>3.6.0</version> </dependency> // 配置CAS客户端 <bean id="casClient" class="org.jasig.cas.client.authentication.CasClientAuthenticationFilter"> <property name="casServerLoginUrl" value="http://localhost:8081/cas/login" /> <property name="serverName" value="http://localhost:8080" /> </bean> // 配置CAS过滤器 <filter> <filter-name>CAS Authentication Filter</filter-name> <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class> <init-param> <param-name>casServerLoginUrl</param-name> <param-value>http://localhost:8081/cas/login</param-value> </init-param> <init-param> <param-name>serverName</param-name> <param-value>http://localhost:8080</param-value> </init-param> </filter> <filter-mapping> <filter-name>CAS Authentication Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> // 配置CAS单点登出过滤器 <filter> <filter-name>CAS Logout Filter</filter-name> <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class> </filter> <filter-mapping> <filter-name>CAS Logout Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> // 配置CAS请求单点登出过滤器 <filter> <filter-name>CAS Request Single Sign Out Filter</filter-name> <filter-class>org.jasig.cas.client.session.SingleSignOutFilter</filter-class> </filter> <filter-mapping> <filter-name>CAS Request Single Sign Out Filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` 以上代码是一个Java Web应用中集成CAS客户端的示例,通过配置CAS客户端和相关过滤器,实现与CAS服务器的通信和单点登录功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值