参考: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 onload="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/
相关推荐
1. **架构概述**:CAS的核心设计基于服务Ticket的概念,服务Ticket是一种临时的、一次性使用的凭证,用于在客户端和服务器之间传递身份验证信息。CAS服务器处理用户的登录请求,创建Ticket Granting Ticket(TGT),...
### Spring Security 安全权限管理手册 #### 第一部分:基础篇 ##### 第1章:一个简单的 HelloWorld 在这一章节中,我们将了解如何搭建一个最...希望这些内容能帮助您更好地理解和掌握 Spring Security 的使用方法。
CAS提供了一种中央身份验证服务,使得多个应用系统能够共享用户的登录状态,从而实现用户只需登录一次即可访问多个应用系统的目标。CAS的核心组件包括CAS Server和CAS Client。 - **CAS Server**:负责处理用户登录...
- 当用户尝试访问没有权限的资源时,可以自定义一个页面来提示用户。 - **示例代码**: 在`spring-security.xml`中配置自定义拒绝访问页面。 **8. 动态管理资源结合自定义登录页面** - 结合前两节的知识点,实现...
完成配置后,可以通过访问需要认证的页面来测试自定义登录页面的效果。 **5. 使用数据库管理资源** **5.1 数据库表结构** 为管理资源,可以设计一个资源表,记录资源的信息及其访问权限。 **5.2 初始化数据** ...
- 演示如何设计并实现一个自定义的登录页面,满足特定的UI需求。 - **4.2 修改配置文件** - 说明如何调整Spring Security的配置文件以支持自定义的登录页面。 - **4.3 登录页面中的参数配置** - 讨论如何在自定义...
SiteMinder认证机制是一种与第三方安全解决方案集成的方式,适用于大型企业级应用。 ##### 9.2 配置 配置SiteMinder认证机制需要与SiteMinder服务器进行交互,设置相应的认证代理和会话管理参数。 #### 九、Run-...
- **存储过程与触发器:**讨论了存储过程和触发器的编写与使用方法。 **2.5 服务(XML/WCF)** - **WCF基础:**介绍了Windows Communication Foundation(WCF)作为服务通信框架的基本概念。 - **服务实现:**通过示例...
15.3.1 原子变量是一种“更好的volatile”266 15.3.2 性能比较:锁与原子变量267 15.4 非阻塞算法270 15.4.1 非阻塞的栈270 15.4.2 非阻塞的链表272 15.4.3 原子的域更新器274 15.4.4 ABA问题275 第16章 ...
- **MPEG**: 动态图像专家小组,一种压缩标准。 - **HDMI**: 高清晰度多媒体接口,用于传输高质量音频和视频信号。 - **RF**: 射频信号,用于无线传输。 #### 第三章 BOOT模块介绍 - **3.1 BOOTLOADER概念** -...