- 浏览: 515688 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
jxq0816:
请问博主task:executortask:scheduler ...
Spring任务调度器之Task的使用 -
eithree:
thanks you so much! This proble ...
解决ECShop transport.js与jQuery冲突 -
周聪龙:
按照你的配置,点击登录按钮没反应呀,所有的Ip都改为自己的了呀 ...
自定义客户端登录CAS服务器-iframe实现 -
周聪龙:
denglihong 写道shangliuyan 写道我点击提 ...
自定义客户端登录CAS服务器-iframe实现 -
nihaonihao1987:
...
Spring任务调度器之Task的使用
首先在你使用application server上激活SSL,让项目能使用HTTPS。
下面以我使用的tomcat为例(其实网上也很多了,再啰嗦一遍方法):
1、生成及导入证书。
生成keystore
keytool -genkey -alias projectName -keypass changeit -storepass changeit -keyalg RSA -validity 3600 -dname "CN=127.0.0.1, OU=HOME, O=HOME" -keystore my.keystore
导出证书
keytool -export -alias projectName -file foo.cer -keystore my.keystore
导入证书到cacerts(注意该cacerts确保是你application server所使用的JDK的)
keytool -import -alias projectName -keystore cacerts -file foo.cer -trustcacerts
2、配置tomcat的 server.xml文件。
大概找到下面注释的一行。
把这行下面注释的代码去掉,如下:
留意changeit字段,需要跟之前生成证书时输入的密码一致。
3、重启tomcat。
测试 https://localhost:8443 是否访问正常。
让项目同时使用http和https
完成以上操作后,项目已经可以使用SSL来访问了,但也众所周知SSL之所以安全性比较高因为使用安全通道加密的缘故。所以原来http的一个请求和响应在https里面都变成几个,资源消耗大很多。所以我们有时候仅仅是为了一些资源使用https足以,并不是全部。
如果你是使用Acegi(spring security)的话,集成将非常简单。
具体配置如下:
打开acegi的配置文件。
1、找到exceptionFilter一段,具体代码如下:
留意把forceHttps的值设置为true。
2、配置channelDecisionManager
添加如下代码:
3、配置ChannelProcessingFilter,让我们仅对需要的SSL的资源使用https。
(例子中为访问/admin/**资源的的时候必须使用https,若用http访问的时候也会直接转到https通道。其他资源可使用https也可以使用http。)
顾名思义:
REQUIRES_SECURE_CHANNEL 为使用https
REQUIRES_INSECURE_CHANNEL 为使用http
/** 注意请务必放在最后
另:请注意项目中的url地址,因为如果在https链接当中访问http资源的话,某些时候会出现问题,例如获取session和request之类的时候,实质上是从https进行了Redirect,而且还是那比较难查错。
使用acegi的话,应该配置过FilterSecurityInterceptor,相信格式也很熟悉了吧。
4、勿忘在FilterChainProxy添加新的filter
注意添加上channelProcessingFilter即可。
至此,已经可以享受Acegi在安全性上给我们带来的便利以及乐趣。
但实话说,有些情况下使用Acegi却带来很多的麻烦,或者是必须深入了解,不然扩展性和易用性还是有限。
下面以我使用的tomcat为例(其实网上也很多了,再啰嗦一遍方法):
1、生成及导入证书。
生成keystore
keytool -genkey -alias projectName -keypass changeit -storepass changeit -keyalg RSA -validity 3600 -dname "CN=127.0.0.1, OU=HOME, O=HOME" -keystore my.keystore
导出证书
keytool -export -alias projectName -file foo.cer -keystore my.keystore
导入证书到cacerts(注意该cacerts确保是你application server所使用的JDK的)
keytool -import -alias projectName -keystore cacerts -file foo.cer -trustcacerts
2、配置tomcat的 server.xml文件。
大概找到下面注释的一行。
<!-- Define a SSL HTTP/1.1 Connector on port 8443 This connector uses the JSSE configuration, when using APR, the connector should be using the OpenSSL style configuration described in the APR documentation -->
把这行下面注释的代码去掉,如下:
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" enableLookups="false" disableUploadTimeout="true" keystorePass="changeit" maxThreads="150" scheme="https" secure="true" minSpareThreads="25" clientAuth="false" sslProtocol="TLS" />
留意changeit字段,需要跟之前生成证书时输入的密码一致。
3、重启tomcat。
测试 https://localhost:8443 是否访问正常。
让项目同时使用http和https
完成以上操作后,项目已经可以使用SSL来访问了,但也众所周知SSL之所以安全性比较高因为使用安全通道加密的缘故。所以原来http的一个请求和响应在https里面都变成几个,资源消耗大很多。所以我们有时候仅仅是为了一些资源使用https足以,并不是全部。
如果你是使用Acegi(spring security)的话,集成将非常简单。
具体配置如下:
打开acegi的配置文件。
1、找到exceptionFilter一段,具体代码如下:
<!-- 处理登录异常或权限异常的Filter --> <bean id="exceptionFilter" class="org.acegisecurity.ui.ExceptionTranslationFilter"> <!-- 出现AuthenticationException时的登录入口 --> <property name="authenticationEntryPoint"> <bean class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint"> <property name="loginFormUrl" value="${exceptionFilter.AuthException.loginFormUrl}" /> <!-- in order to enable the https --> <property name="forceHttps" value="true" /> </bean> </property> <!-- 出现AccessDeniedException时的Handler --> <property name="accessDeniedHandler"> <bean class="org.acegisecurity.ui.AccessDeniedHandlerImpl"> <!-- 指定错误页面 --> </bean> </property> </bean>
留意把forceHttps的值设置为true。
2、配置channelDecisionManager
添加如下代码:
<bean id="channelDecisionManager" class="org.acegisecurity.securechannel.ChannelDecisionManagerImpl"> <property name="channelProcessors"> <list> <ref bean="secureChannelProcessor" /> <ref bean="insecureChannelProcessor" /> </list> </property> </bean> <bean id="secureChannelProcessor" class="org.acegisecurity.securechannel.SecureChannelProcessor" /> <bean id="insecureChannelProcessor" class="org.acegisecurity.securechannel.InsecureChannelProcessor" />
3、配置ChannelProcessingFilter,让我们仅对需要的SSL的资源使用https。
<bean id="channelProcessingFilter" class="org.acegisecurity.securechannel.ChannelProcessingFilter"> <property name="channelDecisionManager" ref="channelDecisionManager" /> <property name="filterInvocationDefinitionSource"> <value> PATTERN_TYPE_APACHE_ANT /admin/**=REQUIRES_SECURE_CHANNEL /**=REQUIRES_INSECURE_CHANNEL </value> </property> </bean>
(例子中为访问/admin/**资源的的时候必须使用https,若用http访问的时候也会直接转到https通道。其他资源可使用https也可以使用http。)
顾名思义:
REQUIRES_SECURE_CHANNEL 为使用https
REQUIRES_INSECURE_CHANNEL 为使用http
/** 注意请务必放在最后
另:请注意项目中的url地址,因为如果在https链接当中访问http资源的话,某些时候会出现问题,例如获取session和request之类的时候,实质上是从https进行了Redirect,而且还是那比较难查错。
使用acegi的话,应该配置过FilterSecurityInterceptor,相信格式也很熟悉了吧。
4、勿忘在FilterChainProxy添加新的filter
<bean id="filterChainProxy" class="org.acegisecurity.util.FilterChainProxy"> <property name="filterInvocationDefinitionSource"> <value> CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON PATTERN_TYPE_APACHE_ANT /**=sessionIntegrationFilter,logoutFilter,authenticationFilter,rememberMeFilter,channelProcessingFilter,exceptionFilter,securityInterceptor </value> </property> </bean>
注意添加上channelProcessingFilter即可。
至此,已经可以享受Acegi在安全性上给我们带来的便利以及乐趣。
但实话说,有些情况下使用Acegi却带来很多的麻烦,或者是必须深入了解,不然扩展性和易用性还是有限。
发表评论
-
自定义struts2的url标签的生成
2012-05-08 17:36 2866本文是针对struts2的struts-tags中的s:url ... -
使用VisualVM监测Tomcat JVM情况的配置(Windows+Linux)
2012-04-17 10:02 4416一,Windows环境 1.若以服务的方式启 ... -
【转】Java内存泄露_JVM监控工具介绍jstack_jconsole_jinfo_jmap_jdb_jstat
2012-02-10 18:06 2186jstack -- 如果java程序崩溃生成core文件 ... -
DynaBean的体会
2011-12-29 22:16 0在开发中,为了减少一些不必要的VO和formBean(尽管在s ... -
自己的修改hibernate-tools的模板和修复Comment乱码问题
2011-11-02 11:38 8057关于自定义 之前一直用hibernate-tools来 ... -
SpringSecurity备忘配置
2011-11-01 11:37 13121.定义登录后的首页action.do,该action决定了用 ... -
【转】使用 Eclipse Memory Analyzer 检测内存泄漏问题
2011-09-28 11:39 1323本文是关于在开发Talend RCP 过程中碰到 ... -
编写使用SpringSecurity的JUnit测试提醒
2011-08-15 15:40 3466近日在使用SpringSecurity的项目中发现一个小问题, ... -
【转】sun.misc.BASE64Encoder找不到的解决方法
2011-08-09 11:21 3401sun.misc.BASE64Encoder/BASE64De ... -
【转】如何在win7系统上安装Jdk版本1.6
2011-07-27 17:10 1662鉴于有些朋友对JDK的安装不太熟悉,特意转载此教程。原地址如下 ... -
我的eclipse插件推荐
2011-07-03 19:56 114601. ER图工具 ERMaster - http: ... -
使用Jakarta Common Digester解析XML的简单例子
2011-04-19 13:36 2392Jakarta Commons Digester官方网址 ht ... -
精通Hibernate读书笔记
2010-01-31 00:58 1892生成Java类 使用hibernate tools( ... -
Struts2中的EL表达式兼容问题
2009-12-29 16:33 2328今天遇到一个郁闷的问题,页面某段文字显示的时候就显示一半,查看 ... -
获取上传文件的字符编码
2009-11-10 22:50 3551重点又回到了国人都很烦恼的字符编码问题,真羡慕老外们。不过作为 ... -
也谈Java汉字按照拼音排序
2009-04-10 00:11 5600最近项目上使用到汉字排序的问题,网上搜索了一下后普遍使用下面的 ... -
使用JUnit在struts+spring+hibernate框架环境下进行单元测试
2009-04-01 00:25 6916过往使用的方式从最原始的IDE的DEBUG工具断点查错到目前还 ... -
使用clone解决hibernate+spring集成中的延迟加载问题及分析(no session
2009-03-30 23:59 2295首先说明一下,hibernate的延迟加载特性(lazy)。所 ... -
关于获取表单数据
2009-03-28 01:25 4215今天有个同事做二 ...
相关推荐
AceGI安全策略与CAS(Central Authentication Service)整合是企业级应用中常见的安全解决方案,它能够为Web应用程序提供统一的身份验证和授权服务。本文档旨在详细阐述这一整合过程,包括配置步骤、所需资源以及...
通过上述详细步骤的介绍,开发者可以了解到如何从零开始配置SSL环境、整合CAS Server与Acegi Security,最终实现安全且高效的单点登录解决方案。这种整合方案在企业级应用中尤为常见,对于提高应用的安全性和便捷性...
这个"spring acegi 使用工程demo"显然是一个示例项目,旨在帮助开发者理解和实践如何在Spring应用中集成和使用Acegi安全框架。 首先,Acegi是Spring Security的前身,后来被Spring Security所取代,但它的概念和...
将acegi和cas的war包修改并整合测试,里面包含所需依赖包。经过分卷压缩一共3个文件.
它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。因此,Acegi安全系统能够轻松地适用于复杂的安全需求。 安全涉及到两个不同的概念,认证和授权。前者是关于...
Acegi-Spring安全框架是一个专为基于Spring的企业应用设计的安全框架,现在被称为Spring Security。它提供了声明式的安全访问控制,允许开发者在Spring容器中配置安全相关的Bean,利用Spring的依赖注入(IoC)和面向...
【Acegi框架介绍 acegi安全与认证】 Acegi Security,现称为Spring Security,是一个强大的安全框架,主要用于基于Spring...通过深入理解和使用Acegi(Spring Security),开发者能够构建出更安全、更健壮的应用程序。
Acegi安全框架通过一系列关键组件来实现这些功能,同时它还具备高度的灵活性,可以与各种认证机制(如容器认证、CASSSO、X509等)进行整合,以适应不同的应用场景。 #### Acegi的关键组件 Acegi安全系统由多个关键...
它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。因此,Acegi安全系统能够轻松地适用于复杂的安全需求。 安全涉及到两个不同的概念,认证和授权。前者是关于...
它使用了Spring的方式提供了安全和认证安全服务,包括使用Bean Context,拦截器和面向接口的编程方式。通过精心 配置Acegi安全系统能够轻松地适用于复杂的安全需求。它既能应用于WEB应用也能应用于非WEB应用。在 ...
Acegi Security是Spring社区早期开发的一个安全框架,用于增强J2EE应用程序的安全性。这个框架在Spring Security(之前称为Acegi Security)的后续版本中得到了发展和改进,成为了Spring生态中的核心组件。本文将...
- **实现方式:**在Web层,Acegi使用Servlet过滤器来实现安全拦截器的功能;在方法调用级别,则通过Spring AOP技术实现。 ##### 2. 认证管理器 (Authentication Manager) - **定义:**负责验证用户的主体(通常是...
Acegi 是一个在Java开发领域,特别是Spring框架中曾经广泛使用的安全组件,全称为Acegi Security。这个系统为Spring应用程序提供了全面的安全管理解决方案,包括身份验证、授权、会话管理以及安全事件处理等功能。...
Acegi 使用 Servlet 过滤器来保护 Web 应用,通过身份认证和授权来确保系统的安全性。该框架利用了 Spring 框架的依赖注入和面向切面编程(AOP)特性,使得安全功能可以独立于应用代码,降低了安全性和业务逻辑之间的...
5. **测试和调试**:进行充分的测试以确保安全配置正确无误,可以使用Acegi提供的安全测试工具来辅助调试。 随着Spring Security的出现,虽然Acegi不再维护,但其设计理念和模式在Spring Security中得到了延续和...
Acegi Security是Spring框架早期的一个安全模块,它提供了全面的基于Spring的应用程序的安全管理功能。在本实例中,我们将深入探讨如何使用Acegi来控制用户的权限。Acegi Security已经被Spring Security替代,但其...
4. **频道安全**:Acegi提供了对HTTP通道的安全控制,确保敏感数据通过HTTPS传输,防止数据在传输过程中被窃取。 5. **过滤器链**:Acegi基于Spring的过滤器链机制,可以拦截和处理请求,执行身份验证和授权检查。...
- `security.jpg`可能是一个关于安全过滤器的图解,Acegi使用`SecurityContextHolder`来存储当前请求的认证信息,并通过一系列的过滤器(如`SecurityEnforcementFilter`)来检查访问权限。 - `...
Acegi安全框架简介及实用扩展,spring acegi 权限管理
Acegi Security,现已被Spring ...结合"acegi-sample.war"和"实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架.pdf",开发者可以更好地理解和掌握Acegi Security的使用方法,从而提升Web应用的安全性。