cas项目启动时读取properties配置项

原创 2016年08月30日 15:28:32

我的需求:Cas登录要求根据域名的不同做不同的登录认证方式:
1. 域名为:aaa.com,则要求cas登录页用用户名密码的方式认证
2. 域名为:bbb.com,则要求cas登录页用动态密码的方式认证

issue 1:域名通过可配置的方式来控制

a)

在mycas.properties文件中配置:
domainName:aaa.com

b)

项目启动的时候,解析mycas.properties配置文件,获取domainName配置项,并放入上下文中,待casLoginView.jsp页面中读取该配置项以做不同的处理
这里,我用监听器的机制来实现。创建一个类实现ServletContextListener 接口,实现里面的contextInitialized和contextDestroyed方法。

public class WebContextListener implements ServletContextListener {

    public void contextDestroyed(ServletContextEvent servletContextEvent) {

    }

    public void contextInitialized(ServletContextEvent servletContextEvent) {
        try {
            Class clazz = this.getClass();
            String domainName = PropertyUtils.getValueByKey(clazz,
                    "xxx.properties", "domainName");
            servletContextEvent.getServletContext().setAttribute("domainName", domainName);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

解析读取properties配置文件,点击查看该文章
其中contextInitialized方法是项目在启动初始化的时候就会执行的方法,contextDestroyed是在消亡的时候执行的方法,这里我们需要把随项目启动时执行的代码放在contextInitialized方法中。
然后在web.xml中为这个监听器添加配置

<listener>
    <listener-class> com.master.listener.WebContextListener</listener-class>
</listener>

其中listenner-class配置的是上面定义的监听器类的路径,这样就就可以了,部署好项目,启动就可以执行contextInitialized里面的代码了。

c)

jsp页面中读取ServletContext中的数据,即,casLoginView.jsp页面

这里写图片描述

<div id="requestDomainName" name="<%=application.getAttribute("domainName")%>"></div>

我是通过jquery的方式来获取id为requestDomainName的name的方式来获得domainName的(略渣,有更好的方法么,求教)

if(domainName == $("#requestDomainName").attr("name")) {
…
}

参考:http://blog.inet198.cn/?cb2474600377/article/details/44592617

版权声明:本文为博主原创文章,未经博主允许不得转载。

CAS(3)——Cas Server中各配置文件介绍

Cas Server中所有的配置文件都是放在WEB-INF目录及其子目录下的。        在WEB-INF/classes下的配置文件有: l  cas-theme-default.prope...

Cas(05)——修改Cas的其它配置

修改Cas Server的其它配置   1.1     修改host.name        host.name是定义在cas.properties文件中的一个属性。该属性将被定义在uniqueIdG...
  • elim168
  • elim168
  • 2015年03月08日 09:20
  • 9215

cas 4.2.1

1、加入cas-server-support-jdbc 引用,配置数据库连接 QueryDatabaseAuthenticationHandler 2、配置数据库看连接池 cas-server-web...

CAS4.0 4.1 服务器端搭建(一)

CAS(Central Authentication Service) 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式...
  • Micytoy
  • Micytoy
  • 2016年04月14日 09:37
  • 6789

Cas(5)-修改Cas Server的其它配置

1.1     修改host.name        host.name是定义在cas.properties文件中的一个属性。该属性将被定义在uniqueIdGenerators.xml文件中的...

Spring中属性文件properties的读取与使用

实际项目中,通常将一些可配置的定制信息放到属性文件中(如数据库连接信息,邮件发送配置信息等),便于统一配置管理。例中将需配置的属性信息放在属性文件/WEB-INF/configInfo.propert...

cas框架配置详解

 一、概述 单点登录(Single Sign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信...

CAS4.0 4.1 服务器端搭建(二)

CAS Audit日志数据库持久化配置CAS的Audit日志默认是使用slf4j记录到cas_audit.log的。这里记录一下配置到mysql数据库保存。同样4.2以前需要自己配置数据库连接池,4....
  • Micytoy
  • Micytoy
  • 2016年04月14日 11:01
  • 1556

CAS(3)——Cas Server中各配置文件介绍

Cas Server中所有的配置文件都是放在WEB-INF目录及其子目录下的。        在WEB-INF/classes下的配置文件有: l  cas-theme-default.prope...

Java opencsv--使用 Spring 的 PostConstruct机制,项目启动时,将CSV配置文件读取到内存 map 中

Java opencsv--使用 Spring 的 PostConstruct机制,项目启动时,将CSV配置文件读取到内存 map 中 一.studentConfig.csv 文...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:cas项目启动时读取properties配置项
举报原因:
原因补充:

(最多只允许输入30个字)