ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-12-10 18:20:33  阅读:312  来源: 互联网

标签:security annotations aspects spring java


更新:我发现基于Spring 2.x批注的Controller对于AOP安全性而言是可怕的,因为由于参数和返回值的自由度增加,您无法对方法原型进行假设.在2.x之前,您可以拦截handleRequest并知道第一个参数是HttpServletRequest,返回值是ModelAndView.该标准使您可以为每个控制器编写简单的建议.现在,映射到请求的方法可以接受任何内容并返回String,ModelAndViews等.

原始帖子:我有一组现有的方面来实现AOPAlliance在Spring中运行的MethodInterceptor.它们通过拦截.handleRequest为我的webapp提供安全性.控制器中的方法,并允许执行或转发到登录页面.

在Spring中使用新的基于注释的控制器时,不再需要实现“ handleRequest”方法.控制器的方法可以命名为我想要的任何名称.这破坏了我现有的安全模型.因此,我如何从中得到:

    <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> 

…能够重用我现有的方面,并使用注释将它们应用于整个控制器或控制器方法?

解决方法:

您能否使用AnnotationMatchingPointcut在控制器上查找具有@RequestMapping(或在基于注释的Spring控制器中使用的其他类似注释)的方法?

标签:security,annotations,aspects,spring,java
来源: https://codeday.me/bug/20191210/2103181.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有