Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Spring中使用注释应用方面?_Java_Security_Spring_Annotations_Aspects - Fatal编程技术网

Java 如何在Spring中使用注释应用方面?

Java 如何在Spring中使用注释应用方面?,java,security,spring,annotations,aspects,Java,Security,Spring,Annotations,Aspects,更新:我发现基于Spring 2.x注释的控制器对于AOP安全性来说非常糟糕,因为由于参数和返回值的自由度增加,您无法对方法原型进行假设。在2.x之前,您可以截取HandlerRequest并知道第一个参数是HttpServletRequest,返回值是ModelAndView。该标准允许您为每个控制器编写简单的建议。现在,映射到请求的方法可以接受任何内容并返回字符串、ModelandView等 原始帖子:我有一套现有的方面实现了AOPAlliance在春季运行的MethodIntercepto

更新:我发现基于Spring 2.x注释的控制器对于AOP安全性来说非常糟糕,因为由于参数和返回值的自由度增加,您无法对方法原型进行假设。在2.x之前,您可以截取HandlerRequest并知道第一个参数是HttpServletRequest,返回值是ModelAndView。该标准允许您为每个控制器编写简单的建议。现在,映射到请求的方法可以接受任何内容并返回字符串、ModelandView等

原始帖子:我有一套现有的方面实现了AOPAlliance在春季运行的MethodInterceptor。他们通过拦截.handleRequest为我的Web应用程序提供安全性。方法,并允许执行或转发到登录页

使用Spring中新的基于注释的控制器,“HandlerRequest”方法不再需要实现;控制器的方法可以根据我的需要命名。这打破了我现有的安全模型。那么,我如何从中获得:

    <bean class="com.xxx.aspects.security.LoginAdvice" name="loginAdvice">
            <property name="loginPath">
                    <value>/login.htm</value>
            </property>
            <property name="authenticationService" ref="authenticationService" />
    </bean>

    <bean name="loginAdvisor" class="org.springframework.aop.support.DefaultPointcutAdvisor">
            <property name="advice" ref="loginAdvice" />
            <property name="pointcut">
                    <bean class="org.springframework.aop.support.JdkRegexpMethodPointcut">
                            <property name="pattern">
                                    <value>.*handleRequest.*</value>
                            </property>
                    </bean>
            </property>
    </bean>

    <bean id="someProtectedController" class="org.springframework.aop.framework.ProxyFactoryBean">
            <property name="target">
                    <ref local="someProtectedControllerTarget" />
            </property>
            <property name="interceptorNames">
                    <list>
                            <value>loginAdvisor</value>
                            <value>adminAdvisor</value>
                    </list>
            </property>
    </bean> 

/login.htm
*HandlerRequest*
罗吉纳德维瑟酒店
行政顾问
…为了能够重用我现有的方面并将它们应用于整个控制器或使用注释的控制器方法?

您是否可以使用来查找控制器上具有@RequestMapping(或基于注释的Spring控制器中使用的其他类似注释)的方法