Announcement Announcement Module
Collapse
No announcement yet.
Preauthentication problem Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Preauthentication problem

    Hello:

    I am trying to get to PreAuthentication working. I am following the official Spring docs but have missed something. I get the following error:

    "Cannot convert value of type [yyy.zzz.security.XXXXAuthenticationUserDetailsServ ice] to required type [org.springframework.security.core.userdetails.User DetailsService] for property 'userDetailsService': no matching editors or conversion strategy found"

    Somehow I am not wrapping my service correctly. Any help would appreciated. Eric.

    Code:
    public class XXXAuthenticationUserDetailsService implements
    		AuthenticationUserDetailsService<PreAuthenticatedAuthenticationToken> {
    	
    	
    	private XXXService xxxService = null;
    
    	@Override
    	public UserDetails loadUserDetails(PreAuthenticatedAuthenticationToken token) throws UsernameNotFoundException {
    
    		... some processing to get authorities ...
    
    		user.setGrantedAuthroities(~~~~~~);
    		return user;
    	}

    Code:
    public class BBBPreAuthenticationFilter extends RequestHeaderAuthenticationFilter {
    	
    
    	@Override
    	public Object getPreAuthenticatedPrincipal(HttpServletRequest request) {
    		
    		String authHeader = request.getHeader("Authorization");
    		if (authHeader == null || authHeader.equals("")) {
    			Log.getGeneralLogger().fatal("No authorization header");
    			throw new AccessDeniedException("Internal problem.  Please contact ABC.");
    		}
    		return authHeader;
    	}
    }


    HTML Code:
    	<http realm="Spring Security Application" use-expressions="true" entry-point-ref="tokenAuthenticationEntryPoint">
    		<intercept-url pattern="/blah/nonsecure" access="permitAll"/>
    		<intercept-url pattern="/blah/lookup" access="hasRole('ROLE_JJJJ')"/>
    		<custom-filter position="PRE_AUTH_FILTER" ref="BBBPreAuthenticationFilter" />
    
    	</http>
    	
    	
    	<beans:bean id="BBBPreAuthenticationFilter" class="org.springframework.security.web.authentication.preauth.RequestHeaderAuthenticationFilter">
        	<beans:property name="principalRequestHeader" value="Authorization"/>
        	<beans:property name="authenticationManager" ref="authenticationManager" />
      	</beans:bean>
    	
    	
     	<authentication-manager alias="authenticationManager" >
    		<authentication-provider ref="preauthAuthProvider" />
    	</authentication-manager>
    	
    	
    	<beans:bean name="xxxService" class="yyy.zzz.service.ASMServiceImpl"/>
    	
    	<beans:bean id="preauthAuthProvider"
    				class="org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationProvider">
    		<beans:property name="preAuthenticatedUserDetailsService" ref="userDetailsServiceWrapper"/>
    	</beans:bean>
    	
    	
    	<beans:bean id="userDetailsServiceWrapper"
              class="org.springframework.security.core.userdetails.UserDetailsByNameServiceWrapper">
            <beans:property name="userDetailsService" ref="xxxAuthenticationUserDetailsService"/>
        </beans:bean>
          
        <beans:bean id="xxxAuthenticationUserDetailsService" class="yyy.zzz.security.XXXAuthenticationUserDetailsService">
          	<beans:property name="xxxService" ref="xxxService"/>  
        </beans:bean>
Working...
X