2010-03-03 5 views
5

Spring Security 3.0.2 kullanıyorum ve anonim kullanıcı rollerini veritabanından yüklemek için bir yol bulamıyorum (rollerin herkese verilebileceği dinamik rollerim var).Yay güvenliği 3'te anonim kullanıcı için veritabanı rolleri nasıl yüklenir?

Özel bir anonymousAuthenticationProvider kullanmayı denedim, ancak bu sağlayıcı hiçbir zaman çağrılmıyor.

<http auto-config="false"> 
    <logout invalidate-session="true" logout-success-url="/page/welcome" /> 
    <remember-me /> 
    <anonymous username="_GUEST_" granted-authority="ROLE_GUEST" key="anonymousKey" /> 
    <form-login login-page="/page/login" authentication-failure-url="/page/login?fail=1" default-target-url="/page/welcome" /> 
</http> 

<authentication-manager alias="authenticationManager"> 
    <authentication-provider ref="anonymousAuthenticationProvider"></authentication-provider> 
    <authentication-provider user-service-ref="accountDetails"> 
     <password-encoder ref="passwordEncoder"> 
      <salt-source user-property="xxxx" /> 
     </password-encoder> 
    </authentication-provider> 
</authentication-manager> 

<beans:bean id="accountDetails" class="com.mysite.AccountDetailsImpl" /> 

<beans:bean id="passwordEncoder" class="org.springframework.security.authentication.encoding.ShaPasswordEncoder"> 
    <beans:constructor-arg value="512" /> 
</beans:bean> 

<beans:bean id="anonymousAuthenticationProvider" class="com.my.site.security.CustomAnonymousAuthenticationProvider"> 
    <beans:property name="key" value="anonymousKey" /> 
</beans:bean> 

Benim anonymousAuthenticationProvider yüzden veritabanından özel yetkilerini yükleyemiyor asla denir: İşte benim yapılandırma olduğunu. Oturum açtığımda, hizmet hesabımDetaylar çağrılıyor ve kullanıcı için veritabanından rol yükleyebiliyorum, aynı şeyi anonim kullanıcı için istiyorum.

Bunu nasıl yapabilirim? teşekkürler

+0

Guys, ben aynı sorunu yaşıyorum. Görev, özel kimlik doğrulamamda kullanmak için bir sorgulama listesinden alınan bir parametreyi gönderebilir miyim? Evet ise nasıl? Xml'inizi tamamlayabilir misiniz? Çok TKS! Burada açıklandığı gibi Bahar Güvenlik 4 AnonymousAuthenticationFilter yılında Rodrigo –

cevap

3

O gerekli makamlara üretecek özel bir UserAttribute, bir AnonymousAuthenticationFilter beyan etmektir kolay yolu elde etmek olduğu görülmektedir:

<http auto-config = "false"> 
    <anonymous enabled = "false" /> 
    <custom-filter ref = "myFilter" position = "ANONYMOUS_FILTER" /> 
    ... 
</http> 

<beans:bean id = "myFilter" class = "org.springframework.security.web.authentication.AnonymousAuthenticationFilter"> 
    <beans:property name = "key" value = "anonymousKey" /> 
    <beans:property name = "userAttribute" ref = "myAttributes" /> 
</beans:bean> 

<beans:bean id = "myAttributes" class = "..." /> 
+0

'userAttribute' kaybetti : http://docs.spring.io/spring-security/site/migrate/current/3-to-4/html5/migrate-3 -to-4-xml.html # m3to4-kullanımdan kaldırmalar-web-aaf Yani bu yeni sürümlerde yardımcı olmaz. – shobull

İlgili konular