(接到上一篇)
整合 Bonita到cas里面,Bonita的版本是5.4
1.先将以前生成的密钥导入到Bonita所再的机器上的jvm里面
例如:
keytool -import -keystore /usr/lib/jvm/java-6-sun/jre/lib/security/cacerts -file /root/wsria.crt -alias key
2.将cas client jar包导入 到{BONITA_HOME}/lib
3.新建一个filter
public class WebAuthenticationFilter extends org.jasig.cas.client.util.AbstractCasFilter {
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest)servletRequest;
HttpSession session = request.getSession();
CredentialsEncryptionAPIImpl credEncAPI = CredentialsEncryptionAPIImpl.getInstance();
String username = request.getRemoteUser();
String encryptedCredentials;
try {
encryptedCredentials = credEncAPI.encryptCredential(username);
session.setAttribute(LoginServlet.USER_CREDENTIALS_SESSION_PARAM_KEY, encryptedCredentials);
} catch (GeneralSecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
chain.doFilter(servletRequest, servletResponse);
}
}
编译后曾class文件,再导入到cas-client.jar包中。
4.修改{BONITA_HOME}/webapps/WEB-INF/web.xml
主要是增加相关的过滤器
<!-- ******* -->
<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>https://server177:9443/cas/login</param-value>
</init-param>
<init-param>
<param-name>service</param-name>
<param-value>http://172.25.165.4:8080/bonita/</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>http://172.25.165.4:8080</param-value>
</init-param>
</filter>
<filter>
<filter-name>CAS Validation Filter</filter-name>
<filter-class>org.jasig.cas.client.validation.Cas10TicketValidationFilter</filter-class>
<init-param>
<param-name>casServerUrlPrefix</param-name>
<param-value>https://server177:9443/cas</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>http://172.25.165.4:8080</param-value>
</init-param>
</filter>
<filter>
<filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
<filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
</filter>
<filter>
<filter-name>CAS Web Authentication Filter</filter-name>
<!-- NOTE: Class below is a custom written filter - see attached code -->
<filter-class>org.jasig.cas.client.tomcat.authentication.WebAuthenticationFilter</filter-class>
<init-param>
<param-name>service</param-name>
<param-value>http://172.25.165.4:8080/bonita/</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>http://172.25.165.4:8080</param-value>
</init-param>
</filter>
<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>
<filter-mapping>
<filter-name>CAS Authentication Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CAS Validation Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CAS Web Authentication Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
5.测试OK....
补充一点: 就再启动和查看流程的时候 需要再次登录问题。。
You have to disable BOS internal SSO (cendential transmission) in bonita/client/web/common/conf/security-config.properties.
Set forms.application.credentials.transmission to false
分享到:
相关推荐
CAS(Central Authentication Service) 是 Yale 大学发起的一个开源项目,据统计,大概每 10 个采用开源构建 Web SSO 的 Java 项目,就有 8 个使用 CAS 。
2. **CAS Server安装**:下载cas-server-3.3.5压缩包,解压到Tomcat的webapps目录下,启动Tomcat即可。 3. **配置文件**:修改`cas.properties`文件,配置CAS Server与认证源的连接信息,如数据库URL、用户名、密码...
### SSO CAS Server 二次开发说明文档 #### 环境搭建 为了便于进行二次开发,推荐使用Maven overlays特性来构建开发环境。这样可以利用最新版本的资源文件覆盖现有WAR包中的文件,无需手动导入整个`cas-server-...
【标题】"boot-ssoserver" 是一个基于Spring Security构建的前端后端分离的单点登录(SSO)服务项目。该项目的核心是利用Spring Boot的便捷性和Spring Cloud的微服务架构来实现高效的SSO解决方案。 【描述】提到,...
用J2EE的技术(JSP和Servlet)完成了一个具有Web-SSO的简单样例。样例包含一个身份认证的服务器和两个简单的Web应用,使得这两个 Web应用通过统一的身份认证服务来完成Web-SSO的功能
XXL-SSO 1.1.0 是一个专为初学者设计的简单单点登录(Single Sign-On,简称SSO)系统示例。这个项目是基于Maven构建的,适用于那些想要学习如何实现SSO功能的开发者。通过将源代码导入Eclipse等开发工具,用户可以...
如今,互联网项目对于安全的要求越来越严格,这就是对后端开发提出了更多的要求,目前比较成熟的几种大家比较熟悉的模式,像RBAC 基于角色权限的验证,shiro框架专门用于处理权限方面的,另一个比较流行的后端框架是...
从技术本身的角度分析了单点登录技术的内部机制和实现手段,并且给出Web-SSO和桌面SSO的实现、源代码和详细讲解;还从安全和性能的角度对现有的实现技术进行进一步分析,指出相应的风险和需要改进的方面。本文除了从...
单点登录(Single Sign-On,简称SSO)是一种身份验证机制,允许用户在一次登录后访问多个相互关联的应用系统,而无需再次输入凭证。在本文中,我们将深入探讨基于Spring Boot、MyBatis和Redis实现的SSO解决方案——...
xxl/sso 核心处理包
【Laravel开发-discourse-sSO-laravel】 Laravel是一个基于PHP的开源Web应用程序框架,以其优雅的语法和强大的功能而闻名。它为开发者提供了一种高效的方式来构建可维护且易于扩展的Web应用。"Laravel开发-...
在提供的压缩包`xuxueli-xxl-sso-3b96854`中,我们可以找到XXL-SSO的源代码和相关资源,包括项目的结构、配置文件、测试用例等。通过研究源代码,开发者可以深入理解其工作原理,自定义配置以满足特定需求,或者为...
本项目"laravel开发-sso-broker"旨在利用Laravel构建一个SSO代理,基于Jasny/SSO库,以实现跨多个Laravel应用的SSO功能。 **1. Jasny/SSO 库介绍** Jasny/SSO是由荷兰开发者Arnout Boks创建的一个轻量级的SSO解决...
单点登录 sso cas带超详细文档,包含(cas-server-webapp-4.0.0.war、c3p0-0.9.1.2.jar、cas-client-core-3.3.3.jar、cas-server-support-jdbc-4.0.0.jar、cas-server-webapp-support-4.0.0.jar、commons-logging-...
CAS在Tomcat中实现单点登录项目,单点登录(Single Sign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。...
XXL-SSO XXL-SSO, A Distributed Single-Sign-On Framework. -- Home Page -- Introduction XXL-SSO is a distributed single-sign-on framework. You only need to log in ...
CAS(Central Authentication Service)是一种基于Web的单点登录(Single Sign-On, SSO)协议,广泛应用于企业、教育和组织的认证系统。标题中的"cas-client-3.2.1"和"cas-server-3.4.11"分别指的是CAS客户端和...
标题 "django3-cas-server-3.0.0.tar.gz" 指示这是一个针对 Django 3.x 版本优化的 CAS(Central Authentication Service)服务器的源代码压缩包。CAS 是一个开源的身份验证协议,它允许用户通过单一登录(Single ...
Laravel 开发中的 CAS (Central Authentication Service) 服务器是实现单点登录(Single Sign-On, SSO)的一种常见方法。CAS 是一个开放源码的认证协议,旨在简化Web应用的认证流程,允许用户在一次登录后访问多个...
CAS-SSO系统架构的核心在于中心服务器(CAS Server)对登录与注销状态的控制。当用户试图访问任何一个子系统时,子系统首先会向中心服务器查询该用户的状态。如果用户已经在中心服务器登录,子系统将接收到来自中心...