- 浏览: 924960 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (322)
- Hibernate研究&源码 (27)
- Server (10)
- Coder碎语 (64)
- EnglishMulling (11)
- About XML (1)
- persistence (12)
- Core Java & OO (23)
- Java EE (6)
- JavaScript/JSON/Ajax/ext... (22)
- 我的读书笔记 (16)
- Source Codes Study (29)
- workFlow/jBPM (22)
- OFBiz: Open For Business (1)
- 项目积累 (21)
- srcStudy_acegi (1)
- Cache/Ehcache... (9)
- Java Test/JUnit.. (7)
- maven/ant (2)
- 设计模式 (1)
- SOA/cxf/ws-security (2)
- Android (4)
- 云计算/Hadoop (2)
- 加密/签名 (1)
- 正则表达式 (1)
- htmlparser (1)
- 操作系统 (5)
- DB (1)
最新评论
-
天使建站:
这里这篇文章更详细 还有完整的实例演示:js跳出循环 ...
jQuery中each的break和continue -
heshifk:
刚刚我也遇到同样的问题,然后就在纠结为什么不能直接使用brea ...
jQuery中each的break和continue -
masuweng:
不错写的.
集万千宠爱于一身的SessionImpl:get研究(四): Hibernate源码研究碎得(8) -
muzi131313:
这个老是忘,做一下笔记还是挺好的
jQuery中each的break和continue -
lg068:
data = data.replace("\n&qu ...
项目小经验: eval与回车符
ldap与Acegi? ----Acegi配置文件解剖
这两个之间没什么必然的联系吧?ldap不熟悉,Acegi更是不熟悉.呵呵,这两个再搅和在一起就乱了.
ldap好像是与数据库连接相关的一个东东,那它与现在常见的数据库连接JDBC有什么区别?与JNDI呢?与这两个比又有什么优势?这个优势又怎么暗合了Acegi的需求?
对于Acegi只知道它是与Spring协作很好的一个Security框架,先不说Security别的方面,现在只看它如何管理登录这块,登录肯定是要访问数据库,那么在Acegi的配置文件中又是怎么来体现管理这个访问数据库的呢?
仔细研究项目中定义的applicationContext-acegi-secutiry.xml文件,这里面配置了如下的几个Bean:
1,filterChainProxy -->org.acegisecurity.util.FilterChainProxy
property: filterInvocationDefinitionSource,其值有:
CONVERT_URL_TOLOWERCASE_BEFORE_COMPARISON
PATTEN_TYPE_APCHE_ANT
/**=httpSessionContextIntegrationFilter, logoutFilter,authenicationProcessingFilter,securityContextHolderAwareRequestFilter,rememberMeProcessingFilter,anonymousProcessingFilter,exceptionTranslationFilter,filterInvocationInterceptor
?**
这么一长串是参数是干啥的,filterInvocationDefinitionSource是个什么类型?
看了一下它的源代码,其类型为:FilterInvocationDefinitionSource,那么这个类型怎么又会接收上面那么长的字符串?
再看FilterInvocationDefinitionSource的源代码,它是个接口,这下更惨了,FilterChainProxy初始化调用set时怎么又会初始化一个接口?内部匿名类?
先往下看.........
?
2,httpSessionContextIntegrationFilter -->org.acegisecurity.context.HttpSessionContextIntegrationFilter. 这个类没有属性可配.
3,logoutFilter -->org.acegisecurity.ui.logout.LogoutFilter
通过<constuctor-arg>配置了value="/index.htm".
又通过<constructor-arg>配置了 一个List其值为:
<ref bean = "remeberMeServices">?????????????????????????????????
和<bean class = "org.acegisecurity.ui.logout.SecurityContextLogoutHandler" />
4,authenicationProcessingFilter --> org.acegisecurity.ui.webapp.AuthenticationProcessingFilter
六个property:
authenticationManager ref authenticationManager ??????????????????????????
authenticationFailureUrl value="/jsp/accessDenied.jsp"
alwaysUseDefaultTargetUrl value = "true"
defaultTargetUrl value="/pages/content.html"/
filterProcessesUrl value="/jsp/j_acegi_security_check" ???????这个好像很关键的.
rememberMeServices ref="rememberMeServices" ???????????????????
5,securityContextHolderAwareRequestFilter --> org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter 没任何属性可配.
6,rememberMeProcessingFilter --> org.acegisecurity.ui.rememberme.RememberMeProcessingFilter
两个属性:
authenticationManager ref="authenticationManager" ???????????????????
rememberMeServices ref="rememberMeServices" ??????????????????
7,anonymousProcessingFilter --> org.acegisecurity.providers.anonymous.AnonymousProcessingFilter
两个属性:
key value="changeThis"
userAttribute value="anonymousUser,ROLE_ANONYMOUS"
8,exceptionTranslationFilter --> org.acegisecurity.ui.ExceptionTranslationFilter
两个属性:
<property name="authenticationEntryPoint">
<bean class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint">
<property name="loginFormUrl" value="/jsp/login.jsp"/>
<property name="forceHttps" value="false"/>
</bean>
</property>
<property name="accessDeniedHandler">
<bean class="org.acegisecurity.ui.AccessDeniedHandlerImpl">
<property name="errorPage" value="/jsp/accessDenied.jsp"/>
</bean>
</property>
9,filterInvocationInterceptor --> org.acegisecurity.intercept.web.FilterSecurityInterceptor
三个属性:
authenticationManager ref="authenticationManager" ???????????????????????
<property name="accessDecisionManager">
<bean class="org.acegisecurity.vote.AffirmativeBased">
<property name="allowIfAllAbstainDecisions" value="false"/>
<property name="decisionVoters">
<list>
<bean class="org.acegisecurity.vote.RoleVoter"/>
<bean class="org.acegisecurity.vote.AuthenticatedVoter"/>
</list>
</property>
</bean>
</property>
<property name="objectDefinitionSource">
<value>
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
PATTERN_TYPE_APACHE_ANT
/jsp/login.jsp=ROLE_ANONYMOUS
/jsp/**=ROLE_MPIXTOOLGROUP
</value>
</property>
10, rememberMeServices --> org.acegisecurity.ui.rememberme.TokenBasedRememberMeServices
两个属性:
<property name="userDetailsService" ref="userDetailsService"/> ????????????
<property name="key" value="changeThis"/>
11, authenticationManager --> org.acegisecurity.providers.ProviderManager
一个属性:
<property name="providers"> ????????难道说这可就是登录信息的验证来源?providers嘛.
<list>
<!-- To Disable LDAP, comment out ldapAuthProvider reference below -->
<ref local="ldapAuthProvider"/>
<ref local="daoAuthenticationProvider"/>
<bean class="org.acegisecurity.providers.anonymous.AnonymousAuthenticationProvider">
<property name="key" value="changeThis"/>
</bean>
<bean class="org.acegisecurity.providers.rememberme.RememberMeAuthenticationProvider">
<property name="key" value="changeThis"/>
</bean>
</list>
</property>
12, daoAuthenticationProvider --> org.acegisecurity.providers.dao.DaoAuthenticationProvider
一个属性:
<property name="userDetailsService" ref="userDetailsService"/>
13, userDetailsService --> org.acegisecurity.userdetails.memory.InMemoryDaoImpl
一个属性:
<property name="userMap">
<value>
jklaassen=4moreyears,ROLE_ADMIN
test=test,ROLE_MPIXTOOLGROUP ?????????????这是静态的验证,没有去数据库里查用户和密码吗?
devteam=get2work,ROLE_MPIXTOOLGROUP
jgaerlan=1234,ROLE_MPIXTOOLGROUP
opts=opts,ROLE_OPERATIONS
</value>
</property>
注意下面有一段配置被注释掉了: ??????????????这个是要到数据库里查找吧?
<!--
<bean id="userDetailsService" class="org.acegisecurity.userdetails.jdbc.JdbcDaoImpl">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="usersByUsernameQuery">
<value>{call dbo.MLab_User_GetInfoByUserName(?)}</value>
</property>
<property name="authoritiesByUsernameQuery">
<value>{call dbo.MLab_UserRole_GetInfoByID(?)}</value>
</property>
</bean>
-->
14, initialDirContextFactory --> org.acegisecurity.ldap.DefaultInitialDirContextFactory
其配置如下:
<constructor-arg value="ldap://dc03:389/OU=Employees,OU=Pleasanton,dc=kittyhawk,dc=funmail,dc=com"/>
<property name="managerDn">
<value>cn=mpixtool,OU=Employees,OU=Pleasanton,dc=kittyhawk,dc=funmail,dc=com</value>
</property>
<property name="managerPassword">
<value>p@55w0rd</value> ??????????????????这个密码并没有用到呀,而是用test的
</property>
15, userSearch --> org.acegisecurity.ldap.search.FilterBasedLdapUserSearch ?????????这个来负责登录用户的验证?
<constructor-arg index="0">
<value></value>
</constructor-arg>
<constructor-arg index="1">
<value>sAMAccountName={0}</value>
</constructor-arg>
<constructor-arg index="2">
<ref local="initialDirContextFactory"/>
</constructor-arg>
<property name="searchSubtree">
<value>true</value>
</property>
16, ldapAuthProvider --> org.acegisecurity.providers.ldap.LdapAuthenticationProvider
<constructor-arg>
<bean class="org.acegisecurity.providers.ldap.authenticator.BindAuthenticator">
<constructor-arg>
<ref local="initialDirContextFactory"/>
</constructor-arg>
<property name="userSearch">
<ref local="userSearch"/>
</property>
</bean>
</constructor-arg>
<constructor-arg>
<bean class="org.acegisecurity.providers.ldap.populator.DefaultLdapAuthoritiesPopulator">
<constructor-arg>
<ref local="initialDirContextFactory"/>
</constructor-arg>
<constructor-arg>
<value></value>
</constructor-arg>
<property name="groupRoleAttribute">
<value>cn</value>
</property>
<property name="rolePrefix">
<value>ROLE_</value>
</property>
<property name="convertToUpperCase">
<value>true</value>
</property>
<property name="defaultRole">
<value>IS_AUTHENTICATED_FULLY</value>
</property>
</bean>
</constructor-arg>
一共配置了16个Bean,
filterChainProxy引用的Bean有:
--httpSessionContextIntegrationFilter,上面标号的第2个Bean.
--logoutFilter,上面标号的第3个Bean.
----这个logoutFilter引用的有:
------ rememberMeServices(标号为10)
--------这个rememberMeServices引用的有:
----------userDetailsService(标号为13)
--authenicationProcessingFilter, 上面标号的第4个Bean.
----这个authenicationProcessingFilter引用的有:
------authenticationManager(标号为11)
--------这个authenticationManager引用的有:
----------ldapAuthProvider(标号为16)
------------这个IdapAuthProvider引用的有:
--------------initialDirContextFactory(标号为14)
--------------userSearch(标号为15)
----------daoAuthenticationProvider(标号为12)
------------这个authenticationManager引用的有:
--------------userDetailsService(标号为13)
------ rememberMeServices(标号为10)
--securityContextHolderAwareRequestFilter, 上面标号的第5个Bean.
--rememberMeProcessingFilter,上面标号的第6个Bean.
----这个rememberMeProcessingFilter引用的有:
------authenticationManager(标号为11)
------ rememberMeServices(标号为10)
--anonymousProcessingFilter,上面标号的第7个Bean.
--exceptionTranslationFilter,上面标号的第8个Bean.
--filterInvocationInterceptor,上面标号的第9个Bean.
----这个filterInvocationInterceptor引用的有:
------authenticationManager(标号为11)
止此整个Bean树解析完毕,16个Bean中除了filterChainProxy自己外的15个里它引用了8个,另外的7个又都间接地引用,filterChainProxy是带头大哥无疑了!
这两个之间没什么必然的联系吧?ldap不熟悉,Acegi更是不熟悉.呵呵,这两个再搅和在一起就乱了.
ldap好像是与数据库连接相关的一个东东,那它与现在常见的数据库连接JDBC有什么区别?与JNDI呢?与这两个比又有什么优势?这个优势又怎么暗合了Acegi的需求?
对于Acegi只知道它是与Spring协作很好的一个Security框架,先不说Security别的方面,现在只看它如何管理登录这块,登录肯定是要访问数据库,那么在Acegi的配置文件中又是怎么来体现管理这个访问数据库的呢?
仔细研究项目中定义的applicationContext-acegi-secutiry.xml文件,这里面配置了如下的几个Bean:
1,filterChainProxy -->org.acegisecurity.util.FilterChainProxy
property: filterInvocationDefinitionSource,其值有:
CONVERT_URL_TOLOWERCASE_BEFORE_COMPARISON
PATTEN_TYPE_APCHE_ANT
/**=httpSessionContextIntegrationFilter, logoutFilter,authenicationProcessingFilter,securityContextHolderAwareRequestFilter,rememberMeProcessingFilter,anonymousProcessingFilter,exceptionTranslationFilter,filterInvocationInterceptor
?**
这么一长串是参数是干啥的,filterInvocationDefinitionSource是个什么类型?
看了一下它的源代码,其类型为:FilterInvocationDefinitionSource,那么这个类型怎么又会接收上面那么长的字符串?
再看FilterInvocationDefinitionSource的源代码,它是个接口,这下更惨了,FilterChainProxy初始化调用set时怎么又会初始化一个接口?内部匿名类?
先往下看.........
?
2,httpSessionContextIntegrationFilter -->org.acegisecurity.context.HttpSessionContextIntegrationFilter. 这个类没有属性可配.
3,logoutFilter -->org.acegisecurity.ui.logout.LogoutFilter
通过<constuctor-arg>配置了value="/index.htm".
又通过<constructor-arg>配置了 一个List其值为:
<ref bean = "remeberMeServices">?????????????????????????????????
和<bean class = "org.acegisecurity.ui.logout.SecurityContextLogoutHandler" />
4,authenicationProcessingFilter --> org.acegisecurity.ui.webapp.AuthenticationProcessingFilter
六个property:
authenticationManager ref authenticationManager ??????????????????????????
authenticationFailureUrl value="/jsp/accessDenied.jsp"
alwaysUseDefaultTargetUrl value = "true"
defaultTargetUrl value="/pages/content.html"/
filterProcessesUrl value="/jsp/j_acegi_security_check" ???????这个好像很关键的.
rememberMeServices ref="rememberMeServices" ???????????????????
5,securityContextHolderAwareRequestFilter --> org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter 没任何属性可配.
6,rememberMeProcessingFilter --> org.acegisecurity.ui.rememberme.RememberMeProcessingFilter
两个属性:
authenticationManager ref="authenticationManager" ???????????????????
rememberMeServices ref="rememberMeServices" ??????????????????
7,anonymousProcessingFilter --> org.acegisecurity.providers.anonymous.AnonymousProcessingFilter
两个属性:
key value="changeThis"
userAttribute value="anonymousUser,ROLE_ANONYMOUS"
8,exceptionTranslationFilter --> org.acegisecurity.ui.ExceptionTranslationFilter
两个属性:
<property name="authenticationEntryPoint">
<bean class="org.acegisecurity.ui.webapp.AuthenticationProcessingFilterEntryPoint">
<property name="loginFormUrl" value="/jsp/login.jsp"/>
<property name="forceHttps" value="false"/>
</bean>
</property>
<property name="accessDeniedHandler">
<bean class="org.acegisecurity.ui.AccessDeniedHandlerImpl">
<property name="errorPage" value="/jsp/accessDenied.jsp"/>
</bean>
</property>
9,filterInvocationInterceptor --> org.acegisecurity.intercept.web.FilterSecurityInterceptor
三个属性:
authenticationManager ref="authenticationManager" ???????????????????????
<property name="accessDecisionManager">
<bean class="org.acegisecurity.vote.AffirmativeBased">
<property name="allowIfAllAbstainDecisions" value="false"/>
<property name="decisionVoters">
<list>
<bean class="org.acegisecurity.vote.RoleVoter"/>
<bean class="org.acegisecurity.vote.AuthenticatedVoter"/>
</list>
</property>
</bean>
</property>
<property name="objectDefinitionSource">
<value>
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
PATTERN_TYPE_APACHE_ANT
/jsp/login.jsp=ROLE_ANONYMOUS
/jsp/**=ROLE_MPIXTOOLGROUP
</value>
</property>
10, rememberMeServices --> org.acegisecurity.ui.rememberme.TokenBasedRememberMeServices
两个属性:
<property name="userDetailsService" ref="userDetailsService"/> ????????????
<property name="key" value="changeThis"/>
11, authenticationManager --> org.acegisecurity.providers.ProviderManager
一个属性:
<property name="providers"> ????????难道说这可就是登录信息的验证来源?providers嘛.
<list>
<!-- To Disable LDAP, comment out ldapAuthProvider reference below -->
<ref local="ldapAuthProvider"/>
<ref local="daoAuthenticationProvider"/>
<bean class="org.acegisecurity.providers.anonymous.AnonymousAuthenticationProvider">
<property name="key" value="changeThis"/>
</bean>
<bean class="org.acegisecurity.providers.rememberme.RememberMeAuthenticationProvider">
<property name="key" value="changeThis"/>
</bean>
</list>
</property>
12, daoAuthenticationProvider --> org.acegisecurity.providers.dao.DaoAuthenticationProvider
一个属性:
<property name="userDetailsService" ref="userDetailsService"/>
13, userDetailsService --> org.acegisecurity.userdetails.memory.InMemoryDaoImpl
一个属性:
<property name="userMap">
<value>
jklaassen=4moreyears,ROLE_ADMIN
test=test,ROLE_MPIXTOOLGROUP ?????????????这是静态的验证,没有去数据库里查用户和密码吗?
devteam=get2work,ROLE_MPIXTOOLGROUP
jgaerlan=1234,ROLE_MPIXTOOLGROUP
opts=opts,ROLE_OPERATIONS
</value>
</property>
注意下面有一段配置被注释掉了: ??????????????这个是要到数据库里查找吧?
<!--
<bean id="userDetailsService" class="org.acegisecurity.userdetails.jdbc.JdbcDaoImpl">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="usersByUsernameQuery">
<value>{call dbo.MLab_User_GetInfoByUserName(?)}</value>
</property>
<property name="authoritiesByUsernameQuery">
<value>{call dbo.MLab_UserRole_GetInfoByID(?)}</value>
</property>
</bean>
-->
14, initialDirContextFactory --> org.acegisecurity.ldap.DefaultInitialDirContextFactory
其配置如下:
<constructor-arg value="ldap://dc03:389/OU=Employees,OU=Pleasanton,dc=kittyhawk,dc=funmail,dc=com"/>
<property name="managerDn">
<value>cn=mpixtool,OU=Employees,OU=Pleasanton,dc=kittyhawk,dc=funmail,dc=com</value>
</property>
<property name="managerPassword">
<value>p@55w0rd</value> ??????????????????这个密码并没有用到呀,而是用test的
</property>
15, userSearch --> org.acegisecurity.ldap.search.FilterBasedLdapUserSearch ?????????这个来负责登录用户的验证?
<constructor-arg index="0">
<value></value>
</constructor-arg>
<constructor-arg index="1">
<value>sAMAccountName={0}</value>
</constructor-arg>
<constructor-arg index="2">
<ref local="initialDirContextFactory"/>
</constructor-arg>
<property name="searchSubtree">
<value>true</value>
</property>
16, ldapAuthProvider --> org.acegisecurity.providers.ldap.LdapAuthenticationProvider
<constructor-arg>
<bean class="org.acegisecurity.providers.ldap.authenticator.BindAuthenticator">
<constructor-arg>
<ref local="initialDirContextFactory"/>
</constructor-arg>
<property name="userSearch">
<ref local="userSearch"/>
</property>
</bean>
</constructor-arg>
<constructor-arg>
<bean class="org.acegisecurity.providers.ldap.populator.DefaultLdapAuthoritiesPopulator">
<constructor-arg>
<ref local="initialDirContextFactory"/>
</constructor-arg>
<constructor-arg>
<value></value>
</constructor-arg>
<property name="groupRoleAttribute">
<value>cn</value>
</property>
<property name="rolePrefix">
<value>ROLE_</value>
</property>
<property name="convertToUpperCase">
<value>true</value>
</property>
<property name="defaultRole">
<value>IS_AUTHENTICATED_FULLY</value>
</property>
</bean>
</constructor-arg>
一共配置了16个Bean,
filterChainProxy引用的Bean有:
--httpSessionContextIntegrationFilter,上面标号的第2个Bean.
--logoutFilter,上面标号的第3个Bean.
----这个logoutFilter引用的有:
------ rememberMeServices(标号为10)
--------这个rememberMeServices引用的有:
----------userDetailsService(标号为13)
--authenicationProcessingFilter, 上面标号的第4个Bean.
----这个authenicationProcessingFilter引用的有:
------authenticationManager(标号为11)
--------这个authenticationManager引用的有:
----------ldapAuthProvider(标号为16)
------------这个IdapAuthProvider引用的有:
--------------initialDirContextFactory(标号为14)
--------------userSearch(标号为15)
----------daoAuthenticationProvider(标号为12)
------------这个authenticationManager引用的有:
--------------userDetailsService(标号为13)
------ rememberMeServices(标号为10)
--securityContextHolderAwareRequestFilter, 上面标号的第5个Bean.
--rememberMeProcessingFilter,上面标号的第6个Bean.
----这个rememberMeProcessingFilter引用的有:
------authenticationManager(标号为11)
------ rememberMeServices(标号为10)
--anonymousProcessingFilter,上面标号的第7个Bean.
--exceptionTranslationFilter,上面标号的第8个Bean.
--filterInvocationInterceptor,上面标号的第9个Bean.
----这个filterInvocationInterceptor引用的有:
------authenticationManager(标号为11)
止此整个Bean树解析完毕,16个Bean中除了filterChainProxy自己外的15个里它引用了8个,另外的7个又都间接地引用,filterChainProxy是带头大哥无疑了!
- applicationContext-acegi-security.rar (2.4 KB)
- 描述: 被解剖的acegi配置文件.
- 下载次数: 60
评论
2 楼
SINCE1978
2009-05-31
"这么一长串是参数是干啥的,filterInvocationDefinitionSource是个什么类型?
看了一下它的源代码,其类型为:FilterInvocationDefinitionSource,那么这个类型怎么又会接收上面那么长的字符串?........."
FilterInvocationDefinitionSource(简称FIDS吧,acegi里到处是一长串的类名,连BenAlex自己都用简称:)是FilterChainProxy的属性,它的注入是依据的spring的属性编辑器,也就是同包下的:FilterInvocationDefinitionSourceEdit类来注入的。关于此点也并非spring发明,这是javaBeans规范:spring替我们做的应该是探测同一包下的某个class是否有classEditor存在,如果有,则spring自动向JDK的PropertyEditorManager注册这个PropertyEditor.以实现由此PropertyEditor来接收xml配置文本的属性然后解析处理为对应的属性类型实例并注入。
看了一下它的源代码,其类型为:FilterInvocationDefinitionSource,那么这个类型怎么又会接收上面那么长的字符串?........."
FilterInvocationDefinitionSource(简称FIDS吧,acegi里到处是一长串的类名,连BenAlex自己都用简称:)是FilterChainProxy的属性,它的注入是依据的spring的属性编辑器,也就是同包下的:FilterInvocationDefinitionSourceEdit类来注入的。关于此点也并非spring发明,这是javaBeans规范:spring替我们做的应该是探测同一包下的某个class是否有classEditor存在,如果有,则spring自动向JDK的PropertyEditorManager注册这个PropertyEditor.以实现由此PropertyEditor来接收xml配置文本的属性然后解析处理为对应的属性类型实例并注入。
1 楼
SSailYang
2008-03-24
ldap 是轻量级目录访问协议,是对目录服务器中各种操作的定义,和数据库没关系。推荐楼主先看看 IBM developerWorks 上的关于 Acegi 的文章。Spring in Action 也有关于 Acegi 的文章,但是相应的 Acegi 的版本比较老,但是基本的东西都没变。
发表评论
-
一个小菜鸟对企业应用分层的再认识(1).
2008-03-29 12:31 1862一个小菜鸟对企业应用分层的再认识(1).企业级应用的分层.&q ... -
用了Acegi后怎么从Login.jsp里传不过来parameter呢?
2008-03-24 09:23 1817作为实验,在login.jsp里加一条<input t ... -
Eclipse里配置Ant 组织的Project(3) -- E中配置Tomcat的JNDI
2008-03-23 21:26 3569Eclipse里配置Ant 组织的Project(3)接着Ec ... -
ldap与jndi有什么不同?
2008-03-23 13:25 2567ldap与jndi有什么不同?请问ldap与jndi有什么不同 ... -
JMS感触
2008-03-19 10:11 1776JMS感触:看一家公司的招聘上写着"熟悉JEE规范如 ...
相关推荐
如果项目是基于Spring的,需要在配置文件中启用Acegi Security,并根据应用需求配置相应的安全策略。同时,需要阅读并遵守`license.txt`中的条款,以确保合法合规地使用该框架。 值得注意的是,Acegi Security后来...
acegi-security-sample-contacts-ldap.war acegi-security-sample-contacts
7. **可扩展性**:Acegi Security设计为模块化,开发者可以根据需要选择和配置组件,也可以轻松地添加自定义的安全策略和逻辑。 "acegi-security--license.txt"文件则包含了该软件的许可协议,通常这会是Apache ...
配置文件中包含了各种安全相关元素,如、<authentication-manager>、<intercept-url>等,它们分别对应不同的安全策略和行为。 总结,Acegi Security 1.0.7作为Spring框架的重要补充,为企业级应用的安全保驾护航。...
python_ldap-3.4.4-cp310-cp310-win_amd64.whl python_ldap-3.4.4-cp311-cp311-win_amd64.whl python_ldap-3.4.4-cp312-cp312-win_amd64.whl python_ldap-3.4.4-cp37-cp37m-win_amd64.whl python_ldap-3.4.4-cp38-cp...
这个"acegi-security-1.0.7.jar.zip"文件包含的是Acegi Security 1.0.7版本的库,它是一个压缩的Java Archive(JAR)文件,专门设计用于增强Spring框架的安全功能。 Acegi Security的核心功能包括身份验证、授权和...
- **配置**:需要在Spring配置文件中添加Acegi Security的相关配置,定义认证和授权规则。 - **依赖管理**:除了Acegi Security本身,项目可能还需要其他的依赖,例如Spring框架、AOP Alliance等,需要正确管理和...
`python_ldap-3.4.4-cp37-cp37m-win32.whl` 是这个库的一个特定版本的预编译轮子文件,适用于Python 3.7版本,并且是为32位Windows系统优化的。 首先,我们来理解一下什么是`.whl`文件。`.whl`文件是Python的包分发...
"acegi-security-jetty-0.8.3.jar.zip"文件是Acegi Security与Jetty服务器特定版本(0.8.3)的集成包,它包含了Acegi Security的jar文件以及相关的许可证信息。 Acegi Security的主要功能包括: 1. **身份验证**:...
这个`python_ldap-3.4.4-cp312-cp312-win_amd64.whl`文件是专门为Python 3.12版本编译的Windows 64位平台的Python LDAP库的轮子文件(wheel file)。轮子文件是预编译的Python软件包,旨在简化安装过程,避免了通常...
5. 集成其他安全机制:如与LDAP服务器集成进行目录服务认证,或者与CAS(Central Authentication Service)等单点登录系统集成。 尽管Acegi Security已被Spring Security替代,但它的设计理念和实现方式对理解现代...
Windows操作系统自带拨号终端不支持EAP-GTC认证协议,因此无法认证成功。只有一些移动终端和macOS支持EAP-GTC,Windows需要用户自己安装软件支持EAP-GTC。LDAP认证插件 EAP-GTC win10-x64
`acegi-security-0.8.1.jar`是该框架的库文件,包含了所有必要的类和资源,用于在项目中引入Acegi Security的功能。开发者通常会将这个JAR文件添加到项目的类路径中,以便使用其提供的服务。 `springframework-...
这个`python_ldap-3.4.4-cp38-cp38-win_amd64.whl`文件是一个预编译的Python轮子(Wheel)包,特别为Python 3.8(cp38)和64位Windows(win_amd64)平台设计。"whl"是一种二进制分发格式,它简化了Python库的安装...
6. **Spring集成**: Acegi Security与Spring的集成是其一大亮点,它可以利用Spring的AOP(面向切面编程)来实现安全控制。通过配置XML或注解,开发者可以轻松地定义安全拦截规则,实现无侵入的安全控制。 7. **许可...
而"acegi-sample"目录下的文件则可能包括了示例代码、配置文件等,帮助开发者快速上手和理解Acegi Security的工作原理。 总的来说,Acegi Security为基于Spring的应用提供了强大的安全基础,虽然现在已被Spring ...
在实际使用中,`shanghai-edu-ldap-test-tool-5896101` 这个文件可能是该工具的一个特定版本或发布包。下载并解压后,通常会包含源代码、可执行文件、文档和示例等内容。开发者可以通过阅读文档了解如何安装、配置和...