cas配置笔记二---服务端配置

下载cas-server-3.5.2.1服务器端和cas-client-3.2.1客户端。

1.1 部署服务端
1)将cas-server-3.5.2.1-release.zip解压到一个目录,将cas-server-3.5.2\modules\cas-server-webapp-3.5.2.war拷贝到tomcat的webapp中去,并且改名为CasServer.war.启动tomcat
2)现在可以访问CAS应用了,当然要使用HTTPS加密协议访问,例如本问用到地址:https://cas.sso.com:8443/CasServer/login,现在打开了CAS服务器的页面输入admin/admin点击登录(CAS默认的验证规则只要用户名和密码相同就通过)
1.2  将源码放进myeclipse

为了开发方便,将cas server 源码放进myeclipse web项目:

1.下载cas server 版本 cas-server-3.5.2.1-release.zip

2.解压 cas-server-3.5.2.1-release.zip,在myeclipse中新建web项目,把cas-server-core\src\main\java的源文件放入新建项目src下面。

3.cas-server-webapp\src\main\java下面的源文件也放到新建项目src下面,和第二步的文件夹名称相同的放在一起。

4.去tomcat中webapps下面找到CasServer文件夹,将其中的内容拷贝到工程的webroot下面

5.webrootclasses中的配置文件放到新的src目录下面

6.java EE 5 Libraries包删除(如果项目没有报错则跳过该步骤)

    7.添加javax.servlet.jar包,然后部署进tomcat运行(如果没有执行6则跳过)

    8).访问https://cas.sso.com:8443/CasServer/login

1.3 数据库登录配置

首先打开webroot/WEB-INF/deployerConfigContext.xml文件,配置的地方如下:

1)找到第129行处,注释掉:SimpleTestUsernamePasswordAuthenticationHandler这个验证Handler,这个是比较简单的,只是判断用户名和密码相同即可通过,这个肯定不能在实际应用中使用,弃用! 

 2)注释掉129行后在下面添加下面的代码:

<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
       <property name="dataSource" ref="dataSource"></property>  
       <property name="sql" value="select user_password from sys_user where user_name=?"></property>  
       <property name="passwordEncoder" ref="myPasswordEncoder"></property>
</bean>

 

释:name="sql"是根据用户名查询密码的,name="passwordEncoder"是将密码按照哪种方式加密,注意加密的方式要与存到数据库中的加密算法一致,否则对比的时候肯定不会一样,就会导致不能登录

3)在该xml的最后加入代码:

<!-- 数据库验证登录 -->
        <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
                <property name="driverClassName" value="com.mysql.jdbc.Driver"/>  
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/wifiauto"/>  
                <property name="username" value="root"/>  
                <property name="password" value="123456"/>  
        </bean>
        <bean id="myPasswordEncoder" class="org.jasig.cas.authentication.handler.MyPasswordEncoder"/>
        <!-- 数据库验证登录结束 -->

 

释:id="dataSource"是数据源

     id="myPasswordEncoder",是选择密码按照哪种方式加密,可以选择默认,为了和数据库保持一致,这里自定义了一种加密MyPasswordEncoder,该类代码如下:

 

public class MyPasswordEncoder implements PasswordEncoder  {

        @Override
        public String encode(String password) {
                MessageDigest md5;
                try {
                        md5 = MessageDigest.getInstance("MD5");
                        BASE64Encoder b64=new BASE64Encoder();
                        return b64.encode(md5.digest(password.getBytes("UTF-8")));
                } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                }
                return null;
        }
        
}

 

到这里数据库配置登录就结束了

 

 

 

 

 

 

猜你喜欢

转载自xxw0810.iteye.com/blog/2059947