2017-05-04 78 views
1

我有一個工作正常的春天配置。我的Spring配置使用多個security:http部分。 定義security:http部分時,某些操作會自動發生,如某些bean定義。其中一個自動定義的bean是一個實現bean的實現。Spring Security,多個http元素。哪個是哪個?

問題:你如何識別哪個是哪個?例如,我需要通過@Autowired從代碼中引用特定認證策略,在特定http:security標記中定義;我怎麼能做到這一點?具有相同SessionAuthenticationStrategy比如在您的自定義豆和內部<sec:http> -spawned機械

回答

1

一種方式是走相反的方向:定義SessionAuthenticationStrategy明確,並注入它不管你想要的,包括http配置:

<bean id="fancySessionAuthStrategy" class="com.fancy.FancySessionAuthStrategy"> 
    ... 
</bean> 

<sec:http ...> 
    <sec:session-management session-authentication-strategy-ref="fancySessionAuthStrategy"/> 
    ... 
</sec:http> 

這裏唯一的問題是您將不得不手動構建策略bean定義。

一個例子可以在文檔中找到:http://docs.spring.io/spring-security/site/docs/current/reference/html/session-mgmt.html

+0

我試圖避免定義我自己,因爲我不是很熟悉這些機制。但如果我沒有找到其他的東西,我可能會沿着這條路線走下去。 – Andrei