【第22期】观点:IT 行业加班,到底有没有价值?

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

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

相关文章推荐

用keytool创建秘钥库以及导入导出数字证书等操作

用keytool创建秘钥库以及导入导出数字证书等操作,包括:生成秘钥库并创建一个条目、往已经存在的秘钥库中添加条目、查看秘钥库中的信息、导出数字证书文件、将数字证书导入到自己的JRE证书库中、从JRE...

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

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

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

java读取properties配置文件的配置项

直接贴代码吧import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.FileOutputS...

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

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

cas框架配置详解

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

Redis与Memcached的区别

Redis与Memcached的区别   传统MySQL+ Memcached架构遇到的问题   实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访...

[分享]比较全的电脑网络基础知识

★一。★详细的xp修复控制台命令和用法!!! 放入xp(2000)的光盘,安装时候选R,修复! Windows XP(包括 Windows 2000)的控制台命令是在系统出现一些意外情况下的一种非常有效的诊断和测试以及恢复系统功能的工具。小编的确一直都想把这方面的命令做个总结,这次辛苦老范给我...

tomcat加载应用程序配置文件顺序

对于三大框架,例如ssh或ssm,在tomcat容器启动时配置文件加载顺序是?     针对这样的疑问,我大概知道每个项目的加载都是从web.xml开始的,所以我们以下面的配置文件为例,说明加载过程,...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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