Ich versuche, einen PreAuthenticationFilter in einer Spring-Webanwendung zu konfigurieren. Ich verfolge diese official guide, und suchen Sie in AbschnittSpring Security Preauthentication Config
18.2.1 Anfrage-Header-Authentifizierung (Siteminder)
Hier ist meine security.xml Datei, die meine Bohnen und Konfiguration skizziert:
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.1.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-4.0.xsd"
xmlns:context="http://www.springframework.org/schema/context">
<beans:bean id="myFilter" class="com.MyFilter">
<beans:property name="authenticationManager" ref="authenticationManager" />
</beans:bean>
<beans:bean id="preauthAuthProvider" class="org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationProvider">
<beans:property name="preAuthenticatedUserDetailsService">
<beans:bean id="userDetailsServiceWrapper" class="org.springframework.security.core.userdetails.UserDetailsByNameServiceWrapper">
<beans:property name="userDetailsService" ref="userDetailsService"/>
</beans:bean>
</beans:property>
</beans:bean>
<authentication-manager alias="authenticationManager">
<authentication-provider ref="preauthAuthProvider" />
</authentication-manager>
<http auto-config="true" use-expressions="true" pattern="/**" >
<intercept-url pattern="/main/data" access="hasAnyRole('ROLE_ADMINISTRATORS')" requires-channel="https" />
<intercept-url pattern="/**" access="isAuthenticated()" requires-channel="any" />
<http-basic />
</http>
Grundsätzlich ist das einzige, was ich von der Führung am chaning ist mein filterId und Klasse. Alles andere ist gleich.
Der Fehler, den ich bekommen habe, ist dies:
Cannot resolve reference to bean 'userDetailsService' while setting bean property 'userDetailsService'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'userDetailsService' is defined
Was bin ich hier? Diese Klasse befindet sich bereits im Spring Jar, das in meinem Projekt enthalten ist, und kann in jede Klasse importiert werden.
Seufzer, sind Sie richtig. Ich vermisse den kleinen Fußabdruck, der besagt, dass Sie Ihren eigenen Benutzerdetaildienst implementieren müssen. In grails 3 plugin, das tut das selbe, du nicht, also eine kleine Diskrepanz dort verursacht das Problem. – angryip