<!-- http安全配置 -->
<s:http auto-config="true" use-expressions="true" lowercase-comparisons="false" create-session="ifRequired" >
。。。。<s:intercept-url pattern="/pages/**" access="isAuthenticated()" />
</s:http>
<bean id="loggerListener" class="org.springframework.security.authentication.event.LoggerListener"/>
<s:authentication-manager alias="authenticationManager">
<s:authentication-provider ref="bobkpiAuthenticationProvider">
</s:authentication-provider>
</s:authentication-manager>
<bean id="bobkpiAuthenticationProvider" class="com.resoft.prophet.security.provider.BobkpiAuthenticationProvider">
<property name="userDetailsService" ref="userDetailsService"></property>
<property name="ehrUserDAO" ref="ehrUserDAO"/>
</bean>
<!-- 项目实现的用户查询服务 -->
<bean id="userDetailsService" class="com.resoft.prophet.security.userdetails.UserDetailsServiceImpl">
<property name="securityService" ref="securityService" />
</bean>
1、为什么没有使用userCache?
以上是springsecurity的配置,考虑到维护userCache的繁杂性,userCache 并没有进行配置。主要原因是角色资源的关联,一旦角色资源关联关系发生变化,Cache还是需要清空,重新插入。
2、 如果需要定义自己的provider?
<s:authentication-manager alias="authenticationManager">
<s:authentication-provider ref="bobkpiAuthenticationProvider">
</s:authentication-provider>
</s:authentication-manager>
3、use-expressions="true"这个配置什么作用??
主要是用于isAuthenticated()这样的表达式解析
4、springsecurity的源码中HttpConfigurationBuilder中,定义了多达数配置项。
5、SecurityExpressionRoot中定义了很多表达式可用于配置的方法名称。
默认采用的是WebSecurityExpressionRoot,这个类中有hasIpAddress,可以指定某些IP进行访问。
/**
* Takes a specific IP address or a range using the IP/Netmask (e.g. 192.168.1.0/24 or 202.24.0.0/14).
*
* @param ipAddress the address or range of addresses from which the request must come.
* @return true if the IP address of the current request is in the required range.
*/
public boolean hasIpAddress(String ipAddress) {
return (new IpAddressMatcher(ipAddress).matches(request));
}
public final boolean isAuthenticated() {
return !isAnonymous();
}
指的是必须为非匿名用户。
<s:intercept-url pattern="/pages/**" access="hasIpAddress('10.168.166.125')" />
access表达式必须只有一个
关于springsecurity的配置,很多人仍然觉得比较复杂,我是从acegi开始学起的,虽然acegi的配置更复杂,但是对于大多数的关于配置的代码,我看了一遍,对于所有配置还是比较熟悉的,而且很容易进行扩展,新的配置有了新的schema,但是如果和acegi以前的学习成果结合起来学习,印象还是比较深刻的,毕竟springsecurity只是acegi的升级,很多类只是换了个名字。建议将acegi的配置对照起来,原来怎么配置,现在怎么配置,学起来比较快了。
最好看下schema DTD的说明,这样方便你自己的扩展。
分享到:
相关推荐
### Spring Security3 相关知识点概述 #### 第一章:一个不安全应用的剖析 **安全审计** - **目的**:识别系统中的安全隐患,并评估安全措施的有效性。 - **过程**:通过模拟攻击来测试系统的安全性,分析日志记录...
在Spring配置文件中,可以通过`org.springframework.jndi.JndiObjectFactoryBean`类来定义一个数据源。例如: ```xml <bean id="sysDB" class="org.springframework.jndi.JndiObjectFactoryBean"> <value>hzsh_...
例如:`spring.profiles.include=common,security`。 #### 三、Spring 应用程序设置 - **spring.main.sources**: 指定主类的位置或启动类的包名。这有助于 Spring Boot 自动扫描这些位置来查找启动类。 - **spring...
这可以通过Spring Security或者其他安全框架实现。 9. **客户端容错** 当Eureka Server不可用时,Eureka客户端会进入自我保护模式,防止因网络问题导致的大量服务注销。 10. **监控与管理** Eureka提供了Web UI...
Spring Cloud Finchley提供了与Spring Security的集成,可以通过配置来实现Eureka的安全控制。 总结,"chapter01-chyer-parent.zip"中的内容详细介绍了如何在Spring Cloud Finchley版本下使用Eureka进行服务的注册...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...
Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...