`
dinguangx
  • 浏览: 244755 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

CAS服务器实验之六:自定义CAS服务器数据源

    博客分类:
  • CAS
CAS 
阅读更多

 

在前面的示例中,使用的用户名和密码都是自己捏造出来的,而在实际的应用系统中,都需要从应用数据库中读取用户名和密码,下面就进行自定义CAS服务器的数据源的实验。

准备数据库

mysql数据库test中新建表user

 

CREATE TABLE `user` (
  `username` varchar(46) NOT NULL,
  `password` varchar(46) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8


  
为该表增加两条数据(密码使用MD5加密)

 

 

insert into user(username,password) values('dylan',md5('dylan'));
insert into user(username,password) values('admin',md5('admin'));

 cas服务器配置

 

打开cas-serverWEB-INF/deployerConfigContext.xml文件,找到其中的authenticationManagerauthenticationHandlers属性配置。默认的配置是这样的:

 

<list>
	<!-- ... -->
	<bean		class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
		p:httpClient-ref="httpClient" p:requireSecure="false" />
	<!-- ... -->
	<bean		class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
</list>

 可以看到这里配置了一个SimpleTestUsernamePasswordAuthenticationHandler,这个用户名密码的认证器在认证用户时,只要用户名和密码保持一致,就认为是有效的用户,这也是为什么在前面的测试中,只要输入的用户名和密码一致就能登录的原因。在实际的生产环境中,应该将该认证器取消掉。如换成如下的认证器:

 

<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
	<property name="dataSource">
		<bean id="dataSource"
			class="org.springframework.jdbc.datasource.DriverManagerDataSource">
			<property name="driverClassName" value="com.mysql.jdbc.Driver" />
			<property name="url"				value="jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=utf-8" />
			<property name="username" value="root" />
			<property name="password" value="root" />
		</bean>
	</property>
	<property name="sql" value="select password from user where username=? " />
	<property name="passwordEncoder">
		<bean class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder">
			<constructor-arg value="MD5" />
		</bean>
	</property>
</bean>


    该认证器可以从数据表user中查询用户密码,并对密码进行MD5加密校验,这个认证器位于cas-server-support-jdbc包中,需要在项目中增加相应的jar包。如果使用的是maven配置,配置POM如下:

<dependency>
    <groupId>org.jasig.cas</groupId>
    <artifactId>cas-server-support-jdbc</artifactId>
    <version>${project.version}</version>
</dependency>

 这里用到了mysqlJDBC驱动,需要将相应的jar包加入cas服务器的lib目录。

 

 

 

在配置文件中可以看到,这里的认证器配置的是一个list,默认情况下,只要有一个认证器通过认证,就认为是合法的用户,建议选择合适的认证器放在最前面。

 

测试

重新启动cas-server,进入登录页面,分别尝试使用四组用户进行测试:admin/admindylan/dylantest/testdylan/123456进行测试,结果前两组登录通过,后两组登录失败,验证成功。

 

 

参考资料:

http://wenku.baidu.com/view/f0b268d084254b35eefd34b8.html 

http://www.blogjava.net/tufanshu/archive/2011/01/21/343290.html 

http://www.kafeitu.me/sso/2010/11/05/sso-cas-full-course.html 

http://zxs19861202.iteye.com/blog/855856 

http://www.cnblogs.com/hellowood/archive/2010/08/05/1793364.html

 

分享到:
评论

相关推荐

    CAS自定义加密和登录验证

    总的来说,自定义CAS的加密和登录验证涉及了系统的安全性、可扩展性和灵活性。通过对加密算法的调整和自定义登录验证处理器的编写,我们可以更好地适应组织的特定安全策略和业务需求。为了实施这些改动,开发者需要...

    自定义客户端登录CAS服务器-iframe实现

    标题中的“自定义客户端登录CAS服务器-iframe实现”是指在客户端应用中集成中央认证服务(Central Authentication Service,简称CAS)的登录功能,采用iframe技术来完成。CAS是一种开放源码的单点登录(Single Sign-...

    CAS单点登录学习笔记五之CAS服务器数据源

    这篇名为"CAS单点登录学习笔记五之CAS服务器数据源"的博客文章,很可能是作者对CAS服务器配置数据源部分的深入解析。数据源是应用程序连接和操作数据库的关键组件,对于CAS服务器来说,它用于存储和管理用户的认证...

    cas-server 配置mysql数据源

    数据源是存储和管理应用程序所需数据的连接池,这里是指用于存储CAS服务器元数据和认证信息的MySQL数据库。配置正确的数据源对于CAS的稳定运行至关重要。 要将MySQL设置为CAS Server的数据源,我们首先要确保已安装...

    yale-cas服务器端深度定制

    【标题】"Yale CAS服务器端深度定制"主要涉及到的是CAS(Central Authentication Service)系统,这是一个基于Java开发的开源身份验证框架,由耶鲁大学开发并广泛应用于各个机构的单点登录(Single Sign-On,SSO)...

    落雨博客基于CAS框架的单点登录技术讲解(ppt+code实例+doc)配套资料

    [置顶] SSO单点登录系列3:cas-server端配置认证方式实践(数据源+自定义java类认证) http://blog.csdn.net/ae6623/article/details/8851801 [置顶] SSO单点登录系列2:cas客户端和cas服务端交互原理动画图解,cas...

    cas-client-3.2.1和cas-server-3.5.2

    3. **配置灵活性**: 支持通过配置文件或编程方式设置CAS服务器URL、服务URL等参数。 4. **多语言支持**: 提供多种语言界面,便于国际化。 5. **错误处理**: 客户端可以捕获并处理与服务器交互过程中的各种异常,如...

    cas-client 基于redis自定义实现

    首先,CAS客户端(cas-client)是CAS服务器与应用系统间交互的核心组件,负责处理认证请求、生成和验证服务票证(Service Ticket)。在标准的CAS客户端实现中,它通常会使用内存或数据库来存储和管理相关信息。然而...

    单点登入--CAS3.0

    2. **重定向到CAS服务器**:应用系统发现用户未通过身份验证,会将用户重定向到CAS服务器,并传递一个服务URL,表明用户试图访问的资源。 3. **CAS登录页面**:用户在CAS服务器上输入用户名和密码进行登录。 4. **...

    cas+shiro客户端源码

    在源码中,你需要查看是如何自定义Realm来与数据库或其他数据源交互,获取用户信息和角色权限的。 3. CAS+Shiro集成 将CAS的认证结果与Shiro的授权结合,通常在CAS验证成功后,会将用户的认证信息(如用户名、票证...

    整合spring+springWebMVC+cas客户端

    1. **配置Spring**:创建Spring配置文件(如`applicationContext.xml`),声明必要的bean,包括数据源、事务管理器、Spring MVC的相关配置等。 2. **配置Spring MVC**:创建Spring MVC配置文件(如`servlet-context...

    cas-overlay-template-6.1 服务端代码

    "overlay"在这里指的是自定义CAS服务器的构建过程,允许开发者根据项目需求调整和覆盖默认配置。"cas-overlay-template-6.1"是这个覆盖模板,包含了启动和配置CAS服务器所需的基本结构和文件。 在部署CAS 6.1X ...

    cas5.3.1.rar,单点登录服务器完成可用

    5. **部署CAS服务器**:将修改后的配置文件打包到CAS服务器应用中,并在Tomcat、Jetty或其他应用服务器上部署。确保服务器环境满足CAS的系统需求。 6. **客户端配置**:在每个需要实现单点登录的应用中,配置CAS...

    cas-server-4.0.0.rar

    在"cas-server-4.0.0.rar"这个压缩包中,包含了CAS服务器的源代码和一个预编译的.war文件,这使得用户可以直接将其部署到Tomcat应用服务器上,从而快速搭建一个SSO系统。 1. CAS服务器核心概念: - 单点登录:用户...

    cas-server-3.4.2.1-release

    "cas-server-3.4.2.1-release" 是一个特定版本的 CAS(Central Authentication Service)服务器软件包。CAS 是一个开源的身份验证框架,主要用于实现单一登录(Single Sign-On, SSO)服务,广泛应用于教育、研究和...

    cas-server-release4.zip

    5. **可扩展性**:CAS服务器支持自定义认证和授权策略,可以集成各种身份验证源,如LDAP、Active Directory、数据库等,满足不同环境的需求。 6. **安全性**:CAS设计时考虑了安全因素,如使用HTTPS进行通信,防止...

    cas支持远程登录整全

    3. 用户在CAS服务器上输入凭证,如果验证成功,CAS服务器会生成一个服务票(Service Ticket)。 4. 用户携带这个服务票返回到原始应用。 5. 应用将服务票发送到CAS服务器进行验证。 6. 如果验证通过,应用允许用户...

    cas client springmvc(springmvc cas maven sso 详解 )

    - 数据源配置:定义数据源 bean,连接到数据库,可以使用`org.springframework.jdbc.datasource.DriverManagerDataSource`或JNDI数据源。 - SessionFactory配置:配置`LocalSessionFactoryBean`,指定Hibernate...

    cas核心流程图

    1. **服务请求**:当用户尝试访问受CAS保护的服务(如一个网站或应用程序)时,服务会重定向用户到CAS服务器进行身份验证。 2. **CAS登录页面**:用户被引导至CAS的登录页面,需要输入用户名和密码。如果这是用户的...

    基于springboot,cas5.3,shiro,pac4j,rest接口获取ticket不再跳转cas server登录页

    它内置了Tomcat服务器,并自动配置了许多常用组件,如数据源、缓存、安全等,极大地提高了开发效率。 CAS则是一种开放源码的单点登录(Single Sign-On, SSO)协议,它允许用户通过单一登录凭证访问多个应用,而无需...

Global site tag (gtag.js) - Google Analytics