2012-11-13 10 views
8

मैं स्प्रिंग सुरक्षा 3.1 में रन-एएस सुविधा को काम करने की कोशिश कर रहा हूं। अजीब बात यह है कि मुझे एक उदाहरण नहीं मिल रहा है। यहां तक ​​कि Spring Security Book भी विषय को कवर नहीं करता है।वसंत सुरक्षा 3.1 रन-ए

यहां मेरे एप्लिकेशन संदर्भ का सुरक्षा हिस्सा है।

<security:global-method-security 
     pre-post-annotations="enabled"> 
    <security:expression-handler ref="customExpressionHandler"/> 
</security:global-method-security> 

<bean id="runAsManager" 
     class="org.springframework.security.access.intercept.RunAsManagerImpl"> 
    <property name="key" value="my_run_as_password"/> 
</bean> 

<bean id="runAsAuthenticationProvider" 
     class="org.springframework.security.access.intercept.RunAsImplAuthenticationProvider"> 
    <property name="key" value="my_run_as_password"/> 
</bean> 
<security:http auto-config="true" create-session="always"> 
    <security:remember-me key="njc2"/> 
    <security:session-management invalid-session-url="/sessionTimeout.html"/> 
    <security:intercept-url pattern="/**" access="ROLE_USER"/> 
    <security:form-login login-page='/login.html' 
         authentication-success-handler-ref="njcAuthenticationSuccessHandler" 
         authentication-failure-url="/login-failure.html"/> 
    <security:logout invalidate-session="true" logout-url="/j_spring_security_logout" 
        logout-success-url="/login.html"/> 
</security:http> 

क्रम वसंत में 'जादुई' org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor का एक उदाहरण बनाता है, लेकिन मेरी runAsManager तार नहीं है और इसलिए NullRunAsManager कि डिफ़ॉल्ट रूप से बनाई गई है उपयोग करता है।

क्या आप मुझे एक वैध वसंत सुरक्षा 3.1 उदाहरण दिखा सकते हैं जो जेएसआर -250 एनोटेशन जैसे @RunAs के रूप में चलाने और उपयोग करने का प्रदर्शन करता है?

+1

मैं उदाहरणों की कमी से भी परेशान था, इसलिए मैंने कुछ समय पहले खुद को एक विस्तृत लिखा था: https://dzone.com/articles/spring-security-run-example – kaqqao

उत्तर

3

वास्तव में आप RunAsManager स्थापित करने के लिए स्प्रिंग सुरक्षा XML नामस्थान का उपयोग कर सकते हैं:

<sec:global-method-security run-as-manager-ref="runAsManager"> 
    <!-- Rest of your code --> 
</sec:global-method-security> 

मैं किसी भी बाहर के बॉक्स @RunAs एकीकरण के बारे में पता नहीं है। लेकिन मुझे यकीन है कि इसे स्वयं लागू करना और वसंत सुरक्षा के साथ एकीकृत करना संभव है।

संबंधित मुद्दे