`

SpringSecurity如何定义自己的Provider?如何限制指定的IP?

阅读更多
<!-- 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的说明,这样方便你自己的扩展。

1
2
分享到:
评论

相关推荐

    Spring Security3

    ### Spring Security3 相关知识点概述 #### 第一章:一个不安全应用的剖析 **安全审计** - **目的**:识别系统中的安全隐患,并评估安全措施的有效性。 - **过程**:通过模拟攻击来测试系统的安全性,分析日志记录...

    spring获取weblogic jndi数据源的两种方式

    在Spring配置文件中,可以通过`org.springframework.jndi.JndiObjectFactoryBean`类来定义一个数据源。例如: ```xml &lt;bean id="sysDB" class="org.springframework.jndi.JndiObjectFactoryBean"&gt; &lt;value&gt;hzsh_...

    springboot配置

    例如:`spring.profiles.include=common,security`。 #### 三、Spring 应用程序设置 - **spring.main.sources**: 指定主类的位置或启动类的包名。这有助于 Spring Boot 自动扫描这些位置来查找启动类。 - **spring...

    eurekaserver.rar

    这可以通过Spring Security或者其他安全框架实现。 9. **客户端容错** 当Eureka Server不可用时,Eureka客户端会进入自我保护模式,防止因网络问题导致的大量服务注销。 10. **监控与管理** Eureka提供了Web UI...

    chapter01-chyer-parent.zip

    Spring Cloud Finchley提供了与Spring Security的集成,可以通过配置来实现Eureka的安全控制。 总结,"chapter01-chyer-parent.zip"中的内容详细介绍了如何在Spring Cloud Finchley版本下使用Eureka进行服务的注册...

    java开源包1

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    java开源包11

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    java开源包2

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    java开源包3

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    java开源包6

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    java开源包5

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    java开源包10

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    java开源包4

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    java开源包8

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    java开源包7

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    java开源包9

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    java开源包101

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

    Java资源包01

    Spring4GWT GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java...

Global site tag (gtag.js) - Google Analytics