图片 8

修改CAS源码使基于DB的认证情势布置更加灵活,cas的安装及安顿

Posted by

根源作者的村办网址:

1、window情状安装及配置cas
先是步:生成证书
keytool -genkey -alias tomcat -keyalg RSA -keystore d:/keystore/tomcat

多年来在做CAS配置的时候,碰到了数据源不提供密码等数据的景观下,如何实现密码输入认证呢?

cas介绍:

CAS 是 Yale 大学倡导的二个开源项目,目的在于为 Web
应用种类提供壹种保障的单点登入方法,CAS 在 2004 年 12 月正式成为 JA-SIG
的二个类型。CAS 具备以下特征:

  • 开源的公司级单点登陆化解方案。
  • CAS Server 为索要单独布置的 Web 应用。
  • 支撑越多的客户端(那里指单点登多种类中的各类 Web 应用),包罗 Java,
    .Net, PHP, Perl, Apache, uPortal, Ruby 等。

其次步:导出证书
keytool -export -trustcacerts -alias tomcat -file
d:/keystore/tomcat1.cer -keystore d:/keystore/tomcat

先是步:新建Java项目,依据假面算法生成CAS加密工具

CAS 原理和协和

从组织上看,CAS 包涵五个部分: CAS Server 和 CAS Client。CAS Server
要求单独安顿,重要肩负对用户的表明工作;CAS Client
担任管理对客户端受珍爱能源的拜访请求,须要报到时,重定向到 CAS
Server。图一 是 CAS 最基本的商业事务进程:
图 1. CAS 基础协议

CAS Client 与受保证的客户端应用铺排在联合具名,以 Filter
方式爱慕受保证的财富。对于访问受保障能源的每种 Web 请求,CAS Client
会分析该请求的 Http 请求中是还是不是含有 ServiceTicket,假使未有,则表明当前用户并未登陆,于是将请求重定向到内定好的 CAS
Server 登入地址,并传递 Service(也正是要拜访的目标能源地址),以便登伍分3功今后退回该地址。用户在第 叁步中输入认证新闻,假使登6成功,CAS Server
随机发生二个一定长度、唯一、不可伪造的 ServiceTicket,并缓存以待以后证明,之后系统自动重定向到 Service所在地点,并为客户端浏览器设置贰个 Ticket 格兰特ed Cookie(TGC),CAS
Client 在得到 Service 和新产生的 Ticket 过后,在第 5,6 步中与 CAS
Server 进行身份合适,以担保 Service Ticket 的合法性。

在该协议中,全部与 CAS 的竞相均运用 SSL 协议,确定保证,ST 和 TGC
的安全性。协议专门的学问进度中会有 二 次重定向的长河,不过 CAS Client 与 CAS
Server 之间开始展览 Ticket 验证的进度对于用户是晶莹剔透的。

别的,CAS 协议中还提供了 Proxy
(代理)形式,以适应越来越高级、复杂的施用场景,具体介绍能够参见 CAS
官方网站上的连带文书档案。

其三步:将证书导入JDK信任库
keytool -import -trustcacerts -alias tomcat -file
d:\keystore\tomcat1.cer -keystore “C:\Program
Files\Java\jdk1.8.0_77\jre\lib\security\cacerts”

是因为保密需求不提供自定义的加密工具,在你的骨子里项目中,你可应用cas暗中认可的加密方法比如md伍.

CAS服务器端配置

如上第3步、第一步、第一步都以在jdk设置的bin目录下通过CMD调节台进行操作的。
www.dagong.com须要在修改C:\Windows\System32\drivers\etc目录下hosts,加上:127.0.0.1
www.dagong.com
在实质上意况下www.dagong.com实际域名,同时cas不援助IP地址。

第二步:修改CAS源码

布置服务器碰着

率先下载必须的软件:

Tomcat6.0:
Windows Service Installer

Jdk:
你可以挑选带有 jre 的安装文件或然您机器里以往有 jre 境况则只须求下载
JDK.
Java SE 6 Update 10 Beta  (不带JRE)
JDK 6 Update 6 (带JRE)
Java Runtime Environment (JRE) 6 Update 6 (JRE)

上面按步骤来:
1.安装JDK和JRE
间接下一步到安装到位,记住JDK安装的不二秘技。

2.安装JDK相关的景况变量
壹).切换来桌面,右键点击“笔者的微管理器” -> 属性 -> 高等 -> 如图
建立3个 JAVA_HOME 境况变量,变量值为JDK的根目录。

二).和下面一样的操作,建立 景况变量 CLASSPATH,值为
“.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\jre\lib\rt.jar”

三).依旧操作意况变量但不是新建,而是编辑。编辑 Path
变量,最变量值最前边丰硕 ;%JAVA_HOME%\bin;

3.安装Tomcat
一).一向下一步,中间必要选用安装路径和 JVM
目录,借使JDK和JRE安装没难点,那里他应有能自行找得到,不然须要你手动内定一下。
中间怎么也不用管,有1部让您设置端口,不用动,保持默许的就行了。

2).新添贰个 CATALINA_HOME 景况变量,变量值为您TOMCAT安装时的根目录。

三.测试运维服务器

设置后的bin目录共有一下多少个公文:
bootstrap.jar
tomcat-juli.jar
tomcat6.exe
tomcat6w.exe
在那之中tomcat六w.exe是监察和控制tomcat运营的,能够直接运维,也许减少到荧屏右下角成为一个小Logo。
直接运营tomcat6w.exe只怕“tomcat陆w //ES//” 都可以进来监察和控制配置窗口;
要么运维“tomcat陆w //MS//”把它收缩到右下角。

也可用startup.bat和shutdown.bat 来运营和停业服务。
web访问测试
起始后,能够透过浏览器举办访问,测试运维是不是符合规律。
用IE恐怕Firefox等浏览器,输入地点:
      
–假诺设置时修改了端口,请把8080用修改后的值替换。
假如能够平时浏览到tomcat接待新闻,正是不错了,否则就要检查装置是还是不是准确、防火墙的设置等。
平常境遇的一个题材是端口冲突,最常见的正是80端口被占用,导致服务无法符合规律运营。如若由此tomcat6
//TS//tomcat6来运营,立时就可知发掘提醒新闻。修改一下tomcat陆\conf\server.xml中的端口就能够解决。

普普通通采用80端口的有:
一.
IIS服务器,因为在windows服务器上,多数都安装了IIS,而IIS暗中认可的端口就是80.
贰.
skype即时聊天工具,skype的能够穿透防火墙的才干,也是透过攻陷80端口实现的。

查阅端口占用的下令:
进入windows命令行,输入:
netstat -an
本条命令归来有4列:protocol协议、local address本机地址、foreign
address来访者地址、status状态
浏览本机地址一列,能够见见眼下主机对外服务的IP地址、端口都有怎么样。
若是壹台机械有1玖二.168.1.100和1九二.168.一.101多个地点,那么:
0.0.0.0:80表示那台机械上具备80端口都被运用
127.0.0.一:80意味着1二柒.0.0.一的80被使用,但.100和.拾1IP地址的80还未利用。
1玖二.16八.一.100:80表示.拾0IP地址的80端口被运用
1玖二.16八.一.101:80表示.十一IP地址的80端口被应用

 

 

 

图片 1

找到cas-server-support-jdbc子模块找到包路线cas-server-support-jdbc\src\main\java\org\jasig\cas\adaptors\jdbc\,在复制一份QueryDatabaseAuthenticationHandler.java仁同一视新命名未TyQueryDatabaseAuthenticationHandler.java(记得修改并保证类名与公事名同样)

部署 CAS Server

CAS Server 是1套基于 Java 完结的劳务,该服务以一个 Java Web Application
单独布置在与 servlet二.叁 兼容的 Web 服务器上,别的,由于 Client 与 CAS
Server 之间的互动使用 Https 协议,由此安顿 CAS Server 的服务器还亟需支持SSL 商业事务。当 SSL 配置成功过后,像一般 Web 应用同样将 CAS Server
计划在服务器上就能不荒谬运作了,然则,在真正使用从前,还须要扩充验证用户的接口。

 

image.png

修改代码至如下

Tomcat配置HTTPS方式

 

1、开始-〉运行-〉cmd 进入到jdk下的bin目录

二、输入如下指令

keytool -v -genkey -alias tomcat -keyalg RSA -keystore
d:/tomcat.keystore  -validity 36500

附:

d:/tomcat.keystore是将转移的tomcat.keystore放到d盘根目录下。

“-validity 36500”含义是证书限制时间,36500象征100年,暗中认可值是90天

留神若要放到c盘,在win七系统下,必要以管理人身份进入到命令行中实行操作,不然是心有余而力不足创制tomcat.keystore的。本例放到d盘下。
怎么着以管理员身份进入到命令行下呢?起首->寻觅框中输入cmd->等待(注意不回车)->现身cmd.exe->右键“以管理人身份运转”就能够。

3、输入keystore密码

密码放肆,此处以12345陆为例,要铭记在心那几个密码,之后在实行server.xml配置时须要选用。

四、输入名字、协会单位、组织、市、省、国家等新闻

注意事项:

A、Enter keystore password:此处供给输入大于五个字符的字符串

B、“What is your first and last
name?”那是必填项,并且必须是TOMCAT计划主机的域名依旧IP[如:gbcom.com 或者 10.1.25.251],正是你今后要在浏览器中输入的访问地址

C、“What is the name of your organizational unit?”、“What is the name of
your organization?”、“What is the name of your City or Locality?”、“What
is the name of your State or Province?”、“What is the two-letter country
code for this
unit?”能够服从需求填写也足以不填写直接回车,在系统摸底“correct?”时,对照输入音信,要是符合要求则动用键盘输入字母“y”,不然输入“n”重新填写上面的音信

D、Enter key password for
<tomcat>,那项较为关键,会在tomcat配置文件中使用,建议输入与keystore的密码一致,设置任何密码也能够

l  实现上述输入后,间接回车则在您在其次步中定义的岗位找到变化的文本

5、输入之后会油不过生确认的提示

这时候输入y,并回车。此时创办实现keystore。
进入到D盘根目录下能够看看已经转移的tomcat.xml

6、进入tomcat文件夹
找到conf目录下的sever.xml并进行编写制定

7、编辑
  <Connector port=”8443″ protocol=”HTTP/1.1″ SSLEnabled=”true”
maxThreads=”150″ scheme=”https” secure=”true”
clientAuth=”false”
keystoreFile=”D:/AppServer/Tomcat/apache-tomcat-6.0.32/conf/tomcat.keystore”
keystorePass=”deleiguo” sslProtocol=”TLS” />
注:
4方中的keystore的密码,便是刚刚大家设置的“123456”.

编写落成后关闭并保存sever.xml

八、汤姆cat运行成功后,使用 访问页面

页面成功开发即tomcat下的https配置成功。

 

九、注意事项:

(一)    生成证书的光阴,假设IE客户端所在机器的光阴早于证书生效时间,或许晚于有效时间,IE会提示“该安全证书已到期或还未见效”

(二)    倘使IE提醒“安全注解上的名号无效也许与站点名称不协作”,则是由生成证书时填写的服务器所在主机的域名“您的名字与姓氏是怎么?”/“What
is your first and last name?”不科学引起的

 

10、遗留难题:

(1)借使AC主机无法由此域名查找,必须采纳IP,但是这些IP唯有在布局后技艺鲜明,那样证书就亟须在AC分明IP地址后才干生成

(贰)证书文件只好绑定多少个IP地址,假若有拾.壹.二⑤.250 和 192.16八.一.250 多个IP地址,在注解生成文书时,如采纳了10.1.25.250,通过IE就只可以利用10.1.25.250 来拜会AC-WEB,1九贰.168.一.250是不可能访问AC-WEB的。

 

 

图片 2

package org.jasig.cas.adaptors.jdbc;

配置CAS
  1. 下载cas 
  2. 设置cas-server,我们倘使安装cas-server的服务器为server1

(1)     将cas-server-三.四.2-release.zip
解压,将moudels目录下cas-server-webapp-x.x.war拷贝到tomcat的webapps目录下,修        改名为cas.war.

(贰)     生成server一的安全注脚:

keytool -export -alias tomcat -file D:/file.cer -keystore
d:/tomcat.keystore -validity 36500

然后输入d:/tomcat.keystore中的keystore密码

-file D:/file.cer 即为生成的cer文件,可一贯点击安装

(3)     重新启航server一上的tomcat,核算cas配置是或不是成功,访问https://ip或域名:8443/cas/login,若是能来看cas的报到页面则意味配置成功。

image.png

import java.security.GeneralSecurityException;

cas客户端配置

一、计划CAS的PHP库和相关库文件

1)下载 cas php客户端

二) 由于其用到了PEALX570的DB库,供给下载

本来不自然是小编说的本子,但自身给的是本人试验成功的版本。

3)
用于采用到了SSL所以需求下载openssl。当然我是在windows情形下调查的,下载的windows版本。

4)安装openssl。

2、配置PHP环境

一)将CAS-一.三.一.tgz、PEA凯雷德-一.7.一.tgz、DB-壹.七.①三.tgz放在同3个索引如图。

四)由于phpcas用到了CUCR-VL(用于连接ssl),因而供给确定保障php解释景况急需有那么些扩大。须求做的正是修改ini文件将extentions节下的遮蔽符号去掉,然后正是检查PHP环境的extentions目录下是或不是有相应的.dll。一般标准设置都会有。

3、测试CAS的php客户端

壹)在CAS-一.叁.一.tgz中的docs/examples文件夹拷贝到网站的根目录下。

2)config.example.php 修改为config.php

三)张开config.php 进行退换

4)访问 localhost:8080/examples/example_simple.php  (客户端的地点)

会跳转到CAS服务器登入页面。暗许只要用户名和密码一样就能够经过认证。

 

登入成功后会中间转播到客户端。提醒验证成功。

 

其余客户端的计划按以上步骤配置。就能够兑现单点。

 

 

 

 

 

 

 

 

 

第四步:修改tomcat的配置文件,运维web服务器SSL,也正是HTTPS加密协议
配置tomcat的Server.xml:
丰硕如下配置:
<Connector port=”8443″
protocol=”org.apache.coyote.http11.Http11Protocol”
maxThreads=”150″ SSLEnabled=”true” scheme=”https” secure=”true”
clientAuth=”false” sslProtocol=”TLS”
keystoreFile=”D:/keystore/tomcat”
keystorePass=”123456″/>

import org.jasig.cas.authentication.HandlerResult;
import org.jasig.cas.authentication.PreventedException;
import org.jasig.cas.authentication.UsernamePasswordCredential;
import org.jasig.cas.authentication.principal.SimplePrincipal;
import org.springframework.dao.DataAccessException;
import org.springframework.dao.IncorrectResultSizeDataAccessException;

进阶

运行tomcat,输入地方:https://www.dagong.com:8443
出现如下图:

import javax.security.auth.login.AccountNotFoundException;
import javax.security.auth.login.FailedLoginException;
import javax.validation.constraints.NotNull;

CAS服务端使用数据库验证用户

图片 3

/**
 * Class that if provided a query that returns a password (parameter of
query
 * must be username) will compare that password to a translated version
of the
 * password provided by the user. If they match, then authentication
succeeds.
 * Default password translator is plaintext translator.
 *
 * @author Scott Battaglia
 * @author Dmitriy Kopylenko
 * @author Marvin S. Addison
 *
 * @since 3.0
 */
public class TyQueryDatabaseAuthenticationHandler extends
AbstractJdbcUsernamePasswordAuthenticationHandler {

创建表

create table t_user(
username varchar(200) primary key,
password varchar(200)
);
insertinto users(username,password) values(‘test’,’123′);

image.png

    @NotNull
    private String sql;

添加jar

将数据库驱动包:mysql-connector-java-5.一.5-bin.jar
cas-server-support-jdbc-3.x.x.jar(来自于\cas-server-3.4.2\modules)
copy到cas/WEB-INF/lib/下

第五步:部署cas-server,将cas.war放到tomcat的webapps下,运行tomcat后访问:https://www.dagong.com:8443/cas/login
出现如下图:

    private boolean useDefaultPassword;

创造验证service层

创建LoginDAO

public class LoginDAO extends JdbcDaoSupport {

public List queryList(String sql,Object[] objs){
return this.getJdbcTemplate().queryForList(sql, objs);
}
}

创建LoginService

public class LoginService {

private LoginDAO loginDAO;

/**
* 判别用户登6新闻
* @param username
* @param password
* @return null为用户不存在,false密码错误,true登入成功
*/
public Boolean isUserCorrect(String username,String password){
String sql = “select password from t_user where username=?”;

List results = loginDAO.queryList(sql, new Object[]{username});
if(results==null||results.size()==0){
return null;
}else
if(password.equals(((Map)results.get(0)).get(“password”).toString())){
return new Boolean(true);
}else{
return new Boolean(false);
}
}

public LoginDAO getLoginDAO() {
return loginDAO;
}

public void setLoginDAO(LoginDAO loginDAO) {
this.loginDAO = loginDAO;
}
}

重写验证类

//重写AbstractUsernamePasswordAuthenticationHandler中表明方法authenticateUsernamePasswordInternal
public class UserAuthenticationHandler extends
AbstractUsernamePasswordAuthenticationHandler {

private LoginService loginService;

@Override
protected boolean authenticateUsernamePasswordInternal(
UsernamePasswordCredentials credentials) throws AuthenticationException
{
String username = credentials.getUsername();
String password = credentials.getPassword();
Boolean result = loginService.isUserCorrect(username, password);
if(result==null){
//用户不设有,”error.authentication.credentials.bad.usernameorpassword.username”必须在message配置文件中定义,验证战败时会在签到页面呈现音信
throw new
BadPasswordAuthenticationException(“error.authentication.credentials.bad.usernameorpassword.username”);
}else if(!result.booleanValue()){
//密码错误
throw new
BadPasswordAuthenticationException(“error.authentication.credentials.bad.usernameorpassword.password”);
}else{
//登入成功
return true;
}

}

public LoginService getLoginService() {
return loginService;
}

public void setLoginService(LoginService loginService) {
this.loginService = loginService;
}

}

概念错误消息

在messages_zh_CN.properties中增多验证出错消息

error.authentication.credentials.bad.usernameorpassword.username=用户不设有

error.authentication.credentials.bad.usernameorpassword.password=密码错误

配置WEB-INF\deployerConfigContext.xml文件

<!– 在添加DataSource –>
<bean id=”dataSource”
class=”org.springframework.jdbc.datasource.DriverManagerDataSource”
>
<property name=”driverClassName”>
<value>com.mysql.jdbc.Driver</value>
</property>
<property name=”url”>
<value>jdbc:mysql://localhost:3306/test</value>
</property>
<property name=”username”>
<value>root</value>
</property>
<property name=”password”>
<value>root</value>
</property>
</bean>

<!– 注入Service和DAO –>
<bean name=”jdbcTemplate”
class=”org.springframework.jdbc.core.JdbcTemplate”>
<property name=”dataSource” ref=”dataSource”></property>
</bean>

<bean name=”loginDAO” class=”com.cas.dao.LoginDAO”>
<property name=”jdbcTemplate”
ref=”jdbcTemplate”></property>
</bean>

<bean name=”loginService” class=”com.cas.service.LoginService”>
<property name=”loginDAO” ref=”loginDAO”></property>
</bean>

<!–
找到SimpleTestUsernamePasswordAuthenticationHandler的bean,将它注释掉,增添下边的bean
–>
<bean class=”com.cas.authentication.UserAuthenticationHandler” >
<property name=”loginService”
ref=”loginService”></property>
</bean>运行tomcat,测试登入.(假若是利用war在tomcat解压的服务端,必须将上面类的编译完的class文件,包,音讯配置文件复制到WEB-INF\classes下)

正文来源 邯郸一梦的小站,转发时请申明出处及相应链接。

本文永恒链接:

图片 4

    private String defaultPassword;

image.png

    /** %7B@inheritDoc} */
    @Override
    protected final HandlerResult
authenticateUsernamePasswordInternal(final UsernamePasswordCredential
credential)
            throws GeneralSecurityException, PreventedException {

暗中同意用户名/密码为:admin/admin,登五分之三功后跳转如下页面:

        final String username = credential.getUsername();
        final String password = useDefaultPassword ? defaultPassword :
credential.getPassword();
        final String encryptedPassword =
this.getPasswordEncoder().encode(password);
        try {
            final String dbPassword =
getJdbcTemplate().queryForObject(this.sql, String.class, username);
            if (!dbPassword.equals(encryptedPassword)) {
                throw new FailedLoginException(“Password does not match
value on record.”);
            }
        } catch (final IncorrectResultSizeDataAccessException e) {
            if (e.getActualSize() == 0) {
                throw new AccountNotFoundException(username + ” not
found with SQL query”);
            } else {
                throw new FailedLoginException(“Multiple records found
for ” + username);
            }
        } catch (final DataAccessException e) {
            throw new PreventedException(“SQL exception while executing
query for ” + username, e);
        }
        return createHandlerResult(credential, new
SimplePrincipal(username), null);
    }

图片 5

    /**
    * @param sql The sql to set.
    */
    public void setSql(final String sql) {
        this.sql = sql;
    }

image.png

    /**
    * @param
iSUSEDefaultPassword The
useDefaultPassword to set.
    */
    public void setUseDefaultPassword(final boolean
isUseDefaultPassword) {
        this.useDefaultPassword = isUseDefaultPassword;
    }

第四步:以上步骤达成安装及简便用户登入,在骨子里情况我们须求读取数据库用户音信实行用户验证;接下去,我们须要越来越进展铺排。
修改D:\work\Tomcat\apache-tomcat-7.0.77 –
sso\webapps\cas\WEB-INF
上边包车型地铁deployerConfigContext.xml,注释第7二行,通过jdbc格局去注明用户,所以在\cas\WEB-INF\lib加入cas-server-support-jdbc-三.四.10.jar、mysql-connector-java-5.一.1八.jar多个jar包,那里再而三的mysql数据库,然后加上连接数据库配置。

    /**
    * @param defaultPassword The defaultPassword to set.
    */
    public void setDefaultPassword(final String defaultPassword) {
        this.defaultPassword = defaultPassword;
    }

图片 6

}

image.png

其三步:修改你的CAS安排包代码
解压你的布局包,找到文件deployerConfigContext.xml
假诺您的代码修改代码如下:  

图片 7

<bean id=”dbAuthenticationHandler”
   
class=”org.jasig.cas.adaptors.jdbc.TyQueryDatabaseAuthenticationHandler”>
      <property name=”dataSource”
ref=”dataSource”></property>
      <property name=”sql” value=”select EmpPass as password from
SsoAccount where EmpCode=? “></property>
      <property name=”passwordEncoder”
ref=”passwordEncoder”></property>
      <property name=”useDefaultPassword”
value=”true”></property>
      <property name=”defaultPassword”
value=”111111″></property>
  </bean>

image.png

  id=dbAuthenticationHandle的bean表示登入账号以及密码的认证格局管理配置,该配置被id=authenticationManager的bean配置所引用

1处配置:
<bean
class=”org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler”>
<property name=”dataSource” ref=”dataSource” />
<property name=”sql” value=”select password from SYS_USER where
userName=?” />
</bean>
2处配置:
<bean id=”dataSource”
class=”org.springframework.jdbc.datasource.DriverManagerDataSource”>
<property name=”driverClassName”
value=”com.mysql.jdbc.Driver”></property>
<property name=”url” value=”jdbc:mysql://localhost:3306/sso”/>
<property name=”username” value=”root”/>
<property name=”password” value=”123456″/>
</bean>

  配置代码dbAuthenticationHandler中的TyQueryDatabaseAuthenticationHandler是上述自定义完成的代码,新扩展二属性,userDefaultPassword=true代表服务端验证登入页面提交的密码的时候,t提交的密码不作为实际的密码来源,而是从属性defaultPassword中取值,反之userDefaultPassword=false表示登六页面提交的密码作为服务端认证密码的密码来源。此处的11111效仿的是登入密码输入的密码,由此它是堂皇冠冕的,实际上用户是看不到那么些密码的,而数据Curry面存的不是111111而是11111壹通过加密后的密文,在个中开始展览111111张开表达的时候是急需对11111一拓展加密的。具体的加密进程是依据你的配置来实现的,本处则以上述第一步提到的艺术为参照,实际上加密那块你可机关定制.

在Mysql数据库上创建一个数据库名字称为sso数据库,接着大家在开立一张SYS_USECR-V的表,插入几条数据如下:

  datasSoure的布置本文不予列出

图片 8

  第四步:编译cas-server-support-jdbc

image.png

  由于cas本文所接纳的本子是依据mvn开拓的,实际版本号是四.0.0,由此须求通过mvn口令来编写翻译,实操如下:

重启tomcat后重新访问:https://www.dagong.com:8443/cas/
用户数据Curry面用户登6验证一下。至此cas的server端配置达成,接下去我们供给布置客户端。

  张开cas-server-support-jdbc源码所在文件夹,神速组合ctrl+shift+鼠标右键(假诺你左右键是反的请切换为鼠标右键)张开调整台,输入指令
mvn clean compile回车进行编写翻译

第七步:配置client端,大家本着各个应用服务器的配置,增加cas-client的jarbao
,youli包,有二种方法:
第一种,解压cas-client-***.zip,在modules文件夹中有亟待的jar,依据本人的档期的顺序的供给选拔使用;
其次种,通过maven的措施引用:

  展开便后的目录cas-server-support-jdbc\target\classes\org\jasig\cas\adaptors\jdbc\,在此间你会找到TyQueryDatabaseAuthenticationHandler.class贰进制文件

<dependency>
<groupId>org.jasig.cas.client</groupId>
<artifactId>cas-client-core</artifactId>
<version>3.1.12</version>
</dependency>

  第五步:打包jar文件

在品种中web.xml中进入cas认证相关的过滤过滤器,上面附上源码如下:

  打开cas-server-support-jdbc\target\classes\,急迅组合ctrl+shift+鼠标右键展开调控台,输入口令jar
-cvf cas-server-support-jdbc-四.0.0.jar org回车就生成了jar包文件

<listener>
<listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>
</listener>

  包文件名称解释:“cas-server-support-jdbc”表示mvn项目自模块名“-4.0.0”表示您的mvn主项目标版本号,mvn的子模块的版本号应与mvn主项目版本号保持壹致

<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>
<filter-name>CASFilter</filter-name>
<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
<init-param>
<param-name>casServerLoginUrl</param-name>

  复制上述编译出来的cas-server-support-jdbc-四.0.0.jar文件至您的cas计划包上面包车型地铁lib目录上边,再依照上述第2步修改配置文件.Ok此时涂改打包并布置到位。此时重启tomact访问你的网址飞起来能够看看效果了。

<param-value>https://www.dagong.com:8443/cas/login</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>

本文永世更新链接地址:http://www.linuxidc.com/Linux/2017-05/143333.htm

<param-value>http://localhost:8083</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CASFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

图片 9

<filter>
<filter-name>CAS Validation Filter</filter-name>
<filter-class>
org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
<init-param>
<param-name>casServerUrlPrefix</param-name>

<param-value>https://www.dagong.com:8443/cas</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>http://localhost:8083</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CAS Validation Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<filter>
<filter-name>CAS HttpServletRequest Wrapper
Filter</filter-name>
<filter-class>
org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CAS HttpServletRequest Wrapper
Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<filter>
<filter-name>CAS Assertion Thread Local
Filter</filter-name>
<filter-class>org.jasig.cas.client.util.AssertionThreadLocalFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>CAS Assertion Thread Local
Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

相关文章

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注