`

基于CAS搭建JavaEE单点登录框架(服务端)(取消https证书验证)

    博客分类:
  • cas
 
阅读更多
 
准备工作,需要用到一些工具.
 
cas服务端:cas-server-3.3.3-release.zip 下载地址:http://downloads.jasig.org/cas/cas-server-3.3.3-release.zip
cas客户端:cas-client-3.1.8-release.zip 下载地址:http://downloads.jasig.org/cas-clients/cas-client-3.1.8-release.zip
cas java客户端:cas-client-2.0.11.zip 下载地址:http://downloads.jasig.org/cas-clients/cas-client-2.0.11.zip
 
一、cas服务端的搭建

1. 基本搭建。
将下载的cas服务端zip压缩包解压,在 modules文件夹下找到 cas-server-webapp-3.3.3.war 放到一个tomcat下,启动tomcat,将自动解压缩war包,将项目文件夹名改为cas。
这里我们先把https验证去掉,
打开 cas/WEB-INF/deployerConfigContext.xml,找到<bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" p:httpClient-ref="httpClient" />,将其更改为: <bean class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" p:httpClient-ref="httpClient"p:requireSecure="false" />
 
打开cas/WEB-INF/spring-configuration/ticketGrantingTicketCookieGenerator.xml,将p:cookieSecure="true"改为p:cookieSecure="false"。
打开cas/WEB-INF/spring-configuration/warnCookieGenerator.xml,将p:cookieSecure="true"改为p:cookieSecure="false"。
 
访问该项目可以看到如下内容。 
 

 

使用admin和admin登录即可,cas默认验证方式为用户名和密码相同即可。登录后可以看到如下界面。

 

 

额。。服务端其实现在已经搭建完了。但是我们在真正的项目中肯定是要登录到数据库中去验证用户名和密码的。下面就介绍下如何使cas查询数据库中的用户名和密码。(PS:这里有个限定,那就是需要所有的web应用都使用同一个库和密码加密方式。 例如MD5。当然,在项目中也理所应当这么做。)

 

2.使用数据库来验证用户登录。

首先需要导入一些jar包。

导入spring链接数据库的必须jar包,这里可以根据自己的需要引入相应的版本。截图如下:

 

 

其中,有几个jar包不是spring的但必须导入,

Cas-server-support-jdbc-3.3.3.jar

Cas-server-support-ldap-3.3.3.jar

Commons-dbcp.jar

Commons-pool.jar

Sqljdbc.jar // 数据库连接 JAR,根据自己的复制

 


 

打开cas服务端:cas/WEB-INF/ deployerConfigContext.xml,大约100多行找到如下代码:

<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />

注释掉这行代码,添加如下代码

<bean class="org.jasig.cas.adaptors.jdbc.SearchModeSearchDatabaseAuthenticationHandler" abstract="false" lazy-init="default" autowire="default" dependency-check="default">

<property name="dataSource" ref="casDataSource" /> <!--数据源-->

<property name="tableUsers" value="TB_USER" /> <!--表-->

<property name="fieldUser" value="UserName"/> <!--用户名-->

<property name="fieldPassword" value="Password"/> <!--密码-->

<property name="passwordEncoder" ref="passwordEncoder"/><!--加密方式-->

</bean>

这里我使用的是让cas指定需要验证的表和字段,另外指定了加密方式,可以看到我们还需要两个bean属性,数据源和加密方式。

在外层加入bean:

<bean id="casDataSource" class="org.apache.commons.dbcp.BasicDataSource">

<property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"></property>

<property name="url" value="jdbc:sqlserver://192.168.1.14:1433;DatabaseName=NFS_IOT_DESKTOP"></property>

<property name="username" value="sa" />

<property name="password" value="123" />

</bean>

<!--加密方式,也可以指定自己的加密类-->

<bean id="passwordEncoder" class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder" autowire="byName">

<constructor-arg value="MD5"/><!--使用MD5加密-->

</bean>

 

之后重启tomcat,可以验证自己是否成功,一般这里报错主要是jar的错,jar少引了或者冲突,其他的基本不会报错。

 

这样cas服务端的数据层就完全配置完毕了。当然我们还需要自定义验证登录的界面,这里就说下如何指定前台登录的jsp就可以了。

在服务端的classes文件夹下,有很多配置文件,其中 default_views.properties就是指定页面用的。可以根据其中的注释指定自己的jsp页面。

 

好吧,cas服务端基本配置完毕了,如有问题可以回复提问。

分享到:
评论

相关推荐

    小区物业管理系统,项目是基于JavaEE采用MVC模式结合SSM框架进行实现.zip

    小区物业管理系统,项目是基于JavaEE采用MVC模式结合SSM框架进行实现 小区物业管理系统,项目是基于JavaEE采用MVC模式结合SSM框架进行实现 小区物业管理系统,项目是基于JavaEE采用MVC模式结合SSM框架进行实现 小区...

    JavaEE Spring MyBatis框架(登录).rar

    JavaEE Spring MyBatis框架(登录)JavaEE Spring MyBatis框架(登录)JavaEE Spring MyBatis框架(登录)JavaEE Spring MyBatis框架(登录)JavaEE Spring MyBatis框架(登录)JavaEE Spring MyBatis框架(登录)JavaEE Spring ...

    JavaEE主流开源框架-Struts部分rmvb格式.zip

    JavaEE主流开源框架-Struts部分rmvb格式. JavaEE主流开源框架-Struts部分rmvb格式. JavaEE主流开源框架-Struts部分rmvb格式. JavaEE主流开源框架-Struts部分rmvb格式. JavaEE主流开源框架-Struts部分rmvb格式. ...

    JavaEE Spring Struts2框架例子.rar

    JavaEE Spring Struts2框架登录例子 JavaEE Spring Struts2框架登录例子 JavaEE Spring Struts2框架登录例子 JavaEE Spring Struts2框架登录例子 JavaEE Spring Struts2框架登录例子 JavaEE Spring Struts2框架登录...

    JavaEE轻量级框架应用与开发——S2SH答案

    ### JavaEE轻量级框架应用与开发——S2SH知识点详解 #### 一、书籍概述 《JavaEE轻量级框架应用与开发——S2SH》由QST青软实训编著,清华大学出版社出版,是一本针对JavaEE轻量级框架进行深入探讨的专业教材。本书...

    基于JavaEE通用权限框架

    本项目“基于JavaEE通用权限框架”就是这样一个解决方案,它利用了JavaEE平台的强大功能,特别是其过滤器(Filter)机制来实现用户权限的精细化管理。 JavaEE,全称Java Platform, Enterprise Edition,是Java语言...

    JavaEE 课程设计 SSM框架 房屋租赁系统

    JavaEE课程设计通常涵盖了一系列的Web开发技术,而在这个特定的项目中,我们关注的是一个基于SSM(Spring、SpringMVC、MyBatis)框架的房屋租赁系统。SSM是Java开发中常用的一种轻量级框架组合,适用于构建企业级的...

    基于JavaEE多层框架的实时监测系统设计与实现.pdf

    基于JavaEE多层框架的实时监测系统设计与实现

    基于javaEE的登录

    【标题】"基于JavaEE的登录"涉及到的核心技术是Java企业版(JavaEE)的Web开发,特别是使用Tomcat服务器实现动态网页应用。这个项目是一个基础级别的教程,适合初学者练习和理解JavaEE的基础概念。 【描述】中提到...

    javaEE轻量级框架应用与开发——随书代码

    "javaEE轻量级框架应用与开发"这本书,结合清华大学出版社的专业出版背景,旨在深入讲解如何在Java EE环境中有效地运用这些框架。 "SQL"作为结构化查询语言,是数据库管理和数据操作的核心工具。在Java EE应用中,...

    JAVAEE 初学者SSH框架

    **JAVAEE初学者SSH框架详解** 在JAVAEE开发领域,SSH框架是许多初学者和专业开发者首选的技术栈,它由Spring、Struts和Hibernate三个开源框架组合而成,为Web应用程序提供了一种高效、灵活的开发解决方案。SSH框架...

    毕设-期末课设-JavaEE 基于SSM框架+mysql实现的农场信息管理系统.zip

    毕设-期末课设-JavaEE 基于SSM框架+mysql实现的农场信息管理系统 毕设-期末课设-JavaEE 基于SSM框架+mysql实现的农场信息管理系统 毕设-期末课设-JavaEE 基于SSM框架+mysql实现的农场信息管理系统 毕设-期末课设-...

    JavaEE 课程设计 SSM框架 人力资源系统

    JavaEE课程设计中,SSM框架(Spring、SpringMVC、MyBatis)是一个常见的组合,用于构建企业级Web应用程序。这个"人力资源系统"项目是一个很好的实践案例,它可以帮助初学者理解和掌握SSM框架的核心概念和工作流程。...

    JavaEE轻量级框架6个实验报告

    【JavaEE轻量级框架6个实验报告】是针对Java企业级应用开发中轻量级框架的学习和实践,由史胜辉、王春明、卢培军三位作者编著,适用于期末作业或项目实践。本报告包含六个核心实验,旨在通过实际操作来深入理解和...

    JavaEE Spring Struts2 Hibernate SSH2框架(登录).rar

    JavaEE Spring Struts2 Hibernate SSH2框架(登录例子) JavaEE Spring Struts2 Hibernate SSH2框架(登录例子) JavaEE Spring Struts2 Hibernate SSH2框架(登录例子) JavaEE Spring Struts2 Hibernate SSH2框架(登录...

    JavaEE企业级框架

    JavaEE企业级框架是开发大型、分布式、高并发企业应用的核心技术体系,它提供了一系列标准和规范,使得开发者能够构建可扩展、健壮且易于维护的Web应用程序。本框架主要包含多个层次,如表现层、业务逻辑层和数据...

    客户端与服务端的交互实现(AndroidStudio+JavaEE开发)

    在本文中,我们将深入探讨如何实现客户端与服务端的交互,特别是在Android Studio中构建客户端应用,结合Java EE技术搭建服务端。这个项目涵盖了用户登录、注册功能,以及数据的增删改查操作,通过MySQL数据库进行...

    基于Android+JAVAEE架构的校园信息交互系统

    本文针对一个基于Android+JAVAEE架构的校园信息交互系统的设计与开 发工作进行论述与说明。首先,简单的介绍校园信息交互系统相关的研究背景, 包括涉及的开发平台及技术规范;其次,分析说明了整个系统的设计与架构...

Global site tag (gtag.js) - Google Analytics