代码之家  ›  专栏  ›  技术社区  ›  Rodrigo Gama

Spring Security从不同来源调用

  •  1
  • Rodrigo Gama  · 技术社区  · 17 年前

    如果调用来自HTTP调用,我想测试该调用的身份验证/授权,但如果它来自控制器B,我不想测试。

    3 回复  |  直到 17 年前
        1
  •  1
  •   rodrigoap    17 年前

    你正在向B注入A的安全代理bean。你不能在没有代理的情况下注入A吗?。
    Bean A代理:

    <bean id="beanASecured" class="org.springframework.aop.framework.ProxyFactoryBean">
      <property name="targetName" value="beanA"/>
      <property name="interceptorNames">
        <value>securityInterceptor</value>
      </property>
    </bean>
    

    安全拦截器:

    <bean id="securityInterceptor" class="org.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor">
       ...
    </bean>
    

    Bean A未被代理:

    <bean id="beanA" class="com.A"/>
    

    Bean B被注入Bean“A未被代理”:

    <bean id="beanB" class="com.B">
       <constructor-arg ref="beanA"/>
    </bean>
    
        2
  •  0
  •   Bhushan Bhangale    17 年前

    您只需要在URL上配置spring身份验证,而不需要在方法调用上配置。这将为你工作。

        3
  •  0
  •   Gandalf    17 年前

    我看不出有什么方法可以做到这一点,我想你只需要有第二种方法,比如 doitDirectCall(..) 实际的其他控制器调用和 doit(..) 在HTTP请求中调用get。

    推荐文章