Spring security and oauth2 authentication problem The Ask Question Wizard is Live! Data science time! April 2019 and salary with experienceWhat's the difference between @Component, @Repository & @Service annotations in Spring?Spring Security with Openid and Database IntegrationSpring Security OpenID access login page hidden form input value using CustomOpenIDAuthenticationFilterSpring Security with OpenIDAuthenticationFilter problemJava Spring: getting error “ Unknown property sub-element: <util:constant>”Spring Security OAuth2 pure resource serverSpring security logout - add a message only when logout triggered from a logged in userOAuth schema not validHow to Protect a Resource using Spring Security OAuth2 and MITREID Connect Introspect?Spring Security - Error creating bean with name 'org.springframework.security.filterChains'

Simulate round-robin tournament draw

Writing a T-SQL stored procedure to receive 4 numbers and insert them into a table

What helicopter has the most rotor blades?

Israeli soda type drink

How to keep bees out of canned beverages?

What was Apollo 13's "Little Jolt" after MECO?

Will I be more secure with my own router behind my ISP's router?

Like totally amazing interchangeable sister outfit accessory swapping or whatever

Bright yellow or light yellow?

Preserving file and folder permissions with rsync

Why is arima in R one time step off?

`FindRoot [ ]`::jsing: Encountered a singular Jacobian at a point...WHY

Why did Israel vote against lifting the American embargo on Cuba?

What does こした mean?

Variable does not exist: sObjectType (Task.sObjectType)

What is the evidence that custom checks in Northern Ireland are going to result in violence?

What is the ongoing value of the Kanban board to the developers as opposed to management

What's the difference between using dependency injection with a container and using a service locator?

/bin/ls sorts differently than just ls

false 'Security alert' from Google - every login generates mails from 'no-reply@accounts.google.com'

What does the black goddess statue do and what is it?

SQL Server placement of master database files vs resource database files

Feather, the Redeemed and Dire Fleet Daredevil

Is it OK if I do not take the receipt in Germany?



Spring security and oauth2 authentication problem



The Ask Question Wizard is Live!
Data science time! April 2019 and salary with experienceWhat's the difference between @Component, @Repository & @Service annotations in Spring?Spring Security with Openid and Database IntegrationSpring Security OpenID access login page hidden form input value using CustomOpenIDAuthenticationFilterSpring Security with OpenIDAuthenticationFilter problemJava Spring: getting error “ Unknown property sub-element: <util:constant>”Spring Security OAuth2 pure resource serverSpring security logout - add a message only when logout triggered from a logged in userOAuth schema not validHow to Protect a Resource using Spring Security OAuth2 and MITREID Connect Introspect?Spring Security - Error creating bean with name 'org.springframework.security.filterChains'



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








0















My problem is if I use org.springframework.security.authentication.ProviderManager for my autheticationManager in applicationContext-security.xml then I unable to authenticate with oauth2. If I switch back to authentication-manager id="authenticationManager" version then it works fine.



I have to keep my REST service and oauth2 security settings in separate files. (Sometimes we don't need for REST service at all).



spring-security 4.2.9.RELEASE
spring-security-oauth2 2.3.4



web.xml snippet:



<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/applicationContext.xml
/WEB-INF/rest-dispatcher-servlet.xml
/WEB-INF/rest-dispatcher-servlet-security.xml
/WEB-INF/applicationContext-security.xml
</param-value>
</context-param>


rest-dispatcher-servlet-security



 <beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:oauth="http://www.springframework.org/schema/security/oauth2"
xmlns:secdp="http://www.springframework.org/schema/security"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security.xsd
http://www.springframework.org/schema/security/oauth2
http://www.springframework.org/schema/security/spring-security-oauth2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd">



<!-- Definition of the Authentication Service -->

<secdp:http use-expressions="false" pattern="/oauth/token" create-session="stateless" authentication-manager-ref="clientAuthenticationManager" xmlns="http://www.springframework.org/schema/security">
<intercept-url pattern="/oauth/token" access="IS_AUTHENTICATED_FULLY"/>
<anonymous enabled="false"/>
<secdp:http-basic entry-point-ref="clientAuthenticationEntryPoint"/>
<!-- include this only if you need to authenticate clients via request parameters -->
<custom-filter ref="clientCredentialsTokenEndpointFilter" after="BASIC_AUTH_FILTER"/>
<access-denied-handler ref="oauthAccessDeniedHandler"/>
<secdp:csrf disabled="true"/>
</secdp:http>

<!-- Protected resources -->
<secdp:http use-expressions="false" pattern="/ws/api/**"
create-session="never"
entry-point-ref="oauthAuthenticationEntryPoint"
access-decision-manager-ref="accessDecisionManager"
xmlns="http://www.springframework.org/schema/security">
<anonymous enabled="false"/>
<intercept-url pattern="/ws/api/**"
access="ROLE_USER"/>
<custom-filter ref="resourceServerFilter"
before="PRE_AUTH_FILTER"/>
<access-denied-handler
ref="oauthAccessDeniedHandler"/>
<secdp:csrf disabled="true"/>
</secdp:http>


<bean id="oauthAuthenticationEntryPoint"
class="org.springframework.security.oauth2.provider.error.OAuth2AuthenticationEntryPoint">
<property name="realmName" value="dstest"/>
</bean>

<bean id="clientAuthenticationEntryPoint"
class="org.springframework.security.oauth2.provider.error.OAuth2AuthenticationEntryPoint">
<property name="realmName" value="dstest/client"/>
<property name="typeName" value="Basic"/>
</bean>

<bean id="oauthAccessDeniedHandler"
class="org.springframework.security.oauth2.provider.error.OAuth2AccessDeniedHandler"/>

<bean id="clientCredentialsTokenEndpointFilter"
class="org.springframework.security.oauth2.provider.client.ClientCredentialsTokenEndpointFilter">
<property name="authenticationManager" ref="clientAuthenticationManager"/>

</bean>

<bean id="accessDecisionManager" class="org.springframework.security.access.vote.UnanimousBased"
xmlns="http://www.springframework.org/schema/beans">
<constructor-arg>
<list>
<bean class="org.springframework.security.oauth2.provider.vote.ScopeVoter"/>
<bean class="org.springframework.security.access.vote.RoleVoter"/>
<bean class="org.springframework.security.access.vote.AuthenticatedVoter"/>
</list>
</constructor-arg>
</bean>

<authentication-manager id="clientAuthenticationManager" xmlns="http://www.springframework.org/schema/security">
<authentication-provider user-service-ref="clientDetailsUserService"/>
</authentication-manager>

<bean id="clientDetailsUserService"
class="org.springframework.security.oauth2.provider.client.ClientDetailsUserDetailsService">
<constructor-arg ref="clientDetails"/>
</bean>


<!-- Token Store -->
<bean id="tokenStore" class="org.springframework.security.oauth2.provider.token.store.JdbcTokenStore"/>

<bean id="tokenServices" class="org.springframework.security.oauth2.provider.token.DefaultTokenServices">
<property name="tokenStore" ref="tokenStore"/>
<property name="supportRefreshToken" value="true"/>
<property name="clientDetailsService" ref="clientDetails"/>
</bean>

<bean id="userApprovalHandler"
class="org.springframework.security.oauth2.provider.approval.TokenStoreUserApprovalHandler">
<property name="tokenStore" ref="tokenStore"/>
<property name="requestFactory" ref="oAuth2RequestFactory"/>

</bean>

<!-- Token management -->
<oauth:authorization-server client-details-service-ref="clientDetails" token-services-ref="tokenServices"
user-approval-handler-ref="userApprovalHandler" >

<oauth:authorization-code/>
<oauth:implicit/>
<oauth:refresh-token/>
<oauth:client-credentials/>
<oauth:password/>


</oauth:authorization-server>

<oauth:resource-server id="resourceServerFilter"
resource-id="dstest"
token-services-ref="tokenServices"/>

<!-- Client Definition -->
<oauth:client-details-service id="clientDetails">
<oauth:client client-id="xxxxxxxxx"
authorized-grant-types="password,authorization_code,refresh_token,implicit,redirect"
authorities="ROLE_USER, ROLE_TRUSTED_USER"
redirect-uri="/"
scope="read,write,trust"
access-token-validity="2678400"
refresh-token-validity="15552000" />

</oauth:client-details-service>

<bean class="org.springframework.security.oauth2.provider.request.DefaultOAuth2RequestFactory" id="oAuth2RequestFactory">
<constructor-arg ref="clientDetails" />
</bean>



</beans>


applicationContext-security.xml snippet



<!-- works -->
<authentication-manager id="authenticationManager" xmlns="http://www.springframework.org/schema/security">
<authentication-provider user-service-ref="CustomUserDetailsService">
<password-encoder ref="passwordEncoder"/>
</authentication-provider>
</authentication-manager>

<!-- does not work -->
<bean id="authenticationManager" class="org.springframework.security.authentication.ProviderManager">
<constructor-arg>
<list>
<ref bean="daoAuthenticationProvider"/>
</list>
</constructor-arg>
</bean>

<bean id="daoAuthenticationProvider" class="org.springframework.security.authentication.dao.DaoAuthenticationProvider">
<property name="userDetailsService">
<ref bean="CustomUserDetailsService"/>
</property>
<property name="passwordEncoder">
<ref bean="passwordEncoder"/>
</property>
<property name="hideUserNotFoundExceptions">
<value>false</value>
</property>
</bean>








share




























    0















    My problem is if I use org.springframework.security.authentication.ProviderManager for my autheticationManager in applicationContext-security.xml then I unable to authenticate with oauth2. If I switch back to authentication-manager id="authenticationManager" version then it works fine.



    I have to keep my REST service and oauth2 security settings in separate files. (Sometimes we don't need for REST service at all).



    spring-security 4.2.9.RELEASE
    spring-security-oauth2 2.3.4



    web.xml snippet:



    <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
    /WEB-INF/applicationContext.xml
    /WEB-INF/rest-dispatcher-servlet.xml
    /WEB-INF/rest-dispatcher-servlet-security.xml
    /WEB-INF/applicationContext-security.xml
    </param-value>
    </context-param>


    rest-dispatcher-servlet-security



     <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:oauth="http://www.springframework.org/schema/security/oauth2"
    xmlns:secdp="http://www.springframework.org/schema/security"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
    http://www.springframework.org/schema/security
    http://www.springframework.org/schema/security/spring-security.xsd
    http://www.springframework.org/schema/security/oauth2
    http://www.springframework.org/schema/security/spring-security-oauth2.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-4.3.xsd">



    <!-- Definition of the Authentication Service -->

    <secdp:http use-expressions="false" pattern="/oauth/token" create-session="stateless" authentication-manager-ref="clientAuthenticationManager" xmlns="http://www.springframework.org/schema/security">
    <intercept-url pattern="/oauth/token" access="IS_AUTHENTICATED_FULLY"/>
    <anonymous enabled="false"/>
    <secdp:http-basic entry-point-ref="clientAuthenticationEntryPoint"/>
    <!-- include this only if you need to authenticate clients via request parameters -->
    <custom-filter ref="clientCredentialsTokenEndpointFilter" after="BASIC_AUTH_FILTER"/>
    <access-denied-handler ref="oauthAccessDeniedHandler"/>
    <secdp:csrf disabled="true"/>
    </secdp:http>

    <!-- Protected resources -->
    <secdp:http use-expressions="false" pattern="/ws/api/**"
    create-session="never"
    entry-point-ref="oauthAuthenticationEntryPoint"
    access-decision-manager-ref="accessDecisionManager"
    xmlns="http://www.springframework.org/schema/security">
    <anonymous enabled="false"/>
    <intercept-url pattern="/ws/api/**"
    access="ROLE_USER"/>
    <custom-filter ref="resourceServerFilter"
    before="PRE_AUTH_FILTER"/>
    <access-denied-handler
    ref="oauthAccessDeniedHandler"/>
    <secdp:csrf disabled="true"/>
    </secdp:http>


    <bean id="oauthAuthenticationEntryPoint"
    class="org.springframework.security.oauth2.provider.error.OAuth2AuthenticationEntryPoint">
    <property name="realmName" value="dstest"/>
    </bean>

    <bean id="clientAuthenticationEntryPoint"
    class="org.springframework.security.oauth2.provider.error.OAuth2AuthenticationEntryPoint">
    <property name="realmName" value="dstest/client"/>
    <property name="typeName" value="Basic"/>
    </bean>

    <bean id="oauthAccessDeniedHandler"
    class="org.springframework.security.oauth2.provider.error.OAuth2AccessDeniedHandler"/>

    <bean id="clientCredentialsTokenEndpointFilter"
    class="org.springframework.security.oauth2.provider.client.ClientCredentialsTokenEndpointFilter">
    <property name="authenticationManager" ref="clientAuthenticationManager"/>

    </bean>

    <bean id="accessDecisionManager" class="org.springframework.security.access.vote.UnanimousBased"
    xmlns="http://www.springframework.org/schema/beans">
    <constructor-arg>
    <list>
    <bean class="org.springframework.security.oauth2.provider.vote.ScopeVoter"/>
    <bean class="org.springframework.security.access.vote.RoleVoter"/>
    <bean class="org.springframework.security.access.vote.AuthenticatedVoter"/>
    </list>
    </constructor-arg>
    </bean>

    <authentication-manager id="clientAuthenticationManager" xmlns="http://www.springframework.org/schema/security">
    <authentication-provider user-service-ref="clientDetailsUserService"/>
    </authentication-manager>

    <bean id="clientDetailsUserService"
    class="org.springframework.security.oauth2.provider.client.ClientDetailsUserDetailsService">
    <constructor-arg ref="clientDetails"/>
    </bean>


    <!-- Token Store -->
    <bean id="tokenStore" class="org.springframework.security.oauth2.provider.token.store.JdbcTokenStore"/>

    <bean id="tokenServices" class="org.springframework.security.oauth2.provider.token.DefaultTokenServices">
    <property name="tokenStore" ref="tokenStore"/>
    <property name="supportRefreshToken" value="true"/>
    <property name="clientDetailsService" ref="clientDetails"/>
    </bean>

    <bean id="userApprovalHandler"
    class="org.springframework.security.oauth2.provider.approval.TokenStoreUserApprovalHandler">
    <property name="tokenStore" ref="tokenStore"/>
    <property name="requestFactory" ref="oAuth2RequestFactory"/>

    </bean>

    <!-- Token management -->
    <oauth:authorization-server client-details-service-ref="clientDetails" token-services-ref="tokenServices"
    user-approval-handler-ref="userApprovalHandler" >

    <oauth:authorization-code/>
    <oauth:implicit/>
    <oauth:refresh-token/>
    <oauth:client-credentials/>
    <oauth:password/>


    </oauth:authorization-server>

    <oauth:resource-server id="resourceServerFilter"
    resource-id="dstest"
    token-services-ref="tokenServices"/>

    <!-- Client Definition -->
    <oauth:client-details-service id="clientDetails">
    <oauth:client client-id="xxxxxxxxx"
    authorized-grant-types="password,authorization_code,refresh_token,implicit,redirect"
    authorities="ROLE_USER, ROLE_TRUSTED_USER"
    redirect-uri="/"
    scope="read,write,trust"
    access-token-validity="2678400"
    refresh-token-validity="15552000" />

    </oauth:client-details-service>

    <bean class="org.springframework.security.oauth2.provider.request.DefaultOAuth2RequestFactory" id="oAuth2RequestFactory">
    <constructor-arg ref="clientDetails" />
    </bean>



    </beans>


    applicationContext-security.xml snippet



    <!-- works -->
    <authentication-manager id="authenticationManager" xmlns="http://www.springframework.org/schema/security">
    <authentication-provider user-service-ref="CustomUserDetailsService">
    <password-encoder ref="passwordEncoder"/>
    </authentication-provider>
    </authentication-manager>

    <!-- does not work -->
    <bean id="authenticationManager" class="org.springframework.security.authentication.ProviderManager">
    <constructor-arg>
    <list>
    <ref bean="daoAuthenticationProvider"/>
    </list>
    </constructor-arg>
    </bean>

    <bean id="daoAuthenticationProvider" class="org.springframework.security.authentication.dao.DaoAuthenticationProvider">
    <property name="userDetailsService">
    <ref bean="CustomUserDetailsService"/>
    </property>
    <property name="passwordEncoder">
    <ref bean="passwordEncoder"/>
    </property>
    <property name="hideUserNotFoundExceptions">
    <value>false</value>
    </property>
    </bean>








    share
























      0












      0








      0








      My problem is if I use org.springframework.security.authentication.ProviderManager for my autheticationManager in applicationContext-security.xml then I unable to authenticate with oauth2. If I switch back to authentication-manager id="authenticationManager" version then it works fine.



      I have to keep my REST service and oauth2 security settings in separate files. (Sometimes we don't need for REST service at all).



      spring-security 4.2.9.RELEASE
      spring-security-oauth2 2.3.4



      web.xml snippet:



      <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>
      /WEB-INF/applicationContext.xml
      /WEB-INF/rest-dispatcher-servlet.xml
      /WEB-INF/rest-dispatcher-servlet-security.xml
      /WEB-INF/applicationContext-security.xml
      </param-value>
      </context-param>


      rest-dispatcher-servlet-security



       <beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:context="http://www.springframework.org/schema/context"
      xmlns:oauth="http://www.springframework.org/schema/security/oauth2"
      xmlns:secdp="http://www.springframework.org/schema/security"
      xsi:schemaLocation="http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
      http://www.springframework.org/schema/security
      http://www.springframework.org/schema/security/spring-security.xsd
      http://www.springframework.org/schema/security/oauth2
      http://www.springframework.org/schema/security/spring-security-oauth2.xsd
      http://www.springframework.org/schema/context
      http://www.springframework.org/schema/context/spring-context-4.3.xsd">



      <!-- Definition of the Authentication Service -->

      <secdp:http use-expressions="false" pattern="/oauth/token" create-session="stateless" authentication-manager-ref="clientAuthenticationManager" xmlns="http://www.springframework.org/schema/security">
      <intercept-url pattern="/oauth/token" access="IS_AUTHENTICATED_FULLY"/>
      <anonymous enabled="false"/>
      <secdp:http-basic entry-point-ref="clientAuthenticationEntryPoint"/>
      <!-- include this only if you need to authenticate clients via request parameters -->
      <custom-filter ref="clientCredentialsTokenEndpointFilter" after="BASIC_AUTH_FILTER"/>
      <access-denied-handler ref="oauthAccessDeniedHandler"/>
      <secdp:csrf disabled="true"/>
      </secdp:http>

      <!-- Protected resources -->
      <secdp:http use-expressions="false" pattern="/ws/api/**"
      create-session="never"
      entry-point-ref="oauthAuthenticationEntryPoint"
      access-decision-manager-ref="accessDecisionManager"
      xmlns="http://www.springframework.org/schema/security">
      <anonymous enabled="false"/>
      <intercept-url pattern="/ws/api/**"
      access="ROLE_USER"/>
      <custom-filter ref="resourceServerFilter"
      before="PRE_AUTH_FILTER"/>
      <access-denied-handler
      ref="oauthAccessDeniedHandler"/>
      <secdp:csrf disabled="true"/>
      </secdp:http>


      <bean id="oauthAuthenticationEntryPoint"
      class="org.springframework.security.oauth2.provider.error.OAuth2AuthenticationEntryPoint">
      <property name="realmName" value="dstest"/>
      </bean>

      <bean id="clientAuthenticationEntryPoint"
      class="org.springframework.security.oauth2.provider.error.OAuth2AuthenticationEntryPoint">
      <property name="realmName" value="dstest/client"/>
      <property name="typeName" value="Basic"/>
      </bean>

      <bean id="oauthAccessDeniedHandler"
      class="org.springframework.security.oauth2.provider.error.OAuth2AccessDeniedHandler"/>

      <bean id="clientCredentialsTokenEndpointFilter"
      class="org.springframework.security.oauth2.provider.client.ClientCredentialsTokenEndpointFilter">
      <property name="authenticationManager" ref="clientAuthenticationManager"/>

      </bean>

      <bean id="accessDecisionManager" class="org.springframework.security.access.vote.UnanimousBased"
      xmlns="http://www.springframework.org/schema/beans">
      <constructor-arg>
      <list>
      <bean class="org.springframework.security.oauth2.provider.vote.ScopeVoter"/>
      <bean class="org.springframework.security.access.vote.RoleVoter"/>
      <bean class="org.springframework.security.access.vote.AuthenticatedVoter"/>
      </list>
      </constructor-arg>
      </bean>

      <authentication-manager id="clientAuthenticationManager" xmlns="http://www.springframework.org/schema/security">
      <authentication-provider user-service-ref="clientDetailsUserService"/>
      </authentication-manager>

      <bean id="clientDetailsUserService"
      class="org.springframework.security.oauth2.provider.client.ClientDetailsUserDetailsService">
      <constructor-arg ref="clientDetails"/>
      </bean>


      <!-- Token Store -->
      <bean id="tokenStore" class="org.springframework.security.oauth2.provider.token.store.JdbcTokenStore"/>

      <bean id="tokenServices" class="org.springframework.security.oauth2.provider.token.DefaultTokenServices">
      <property name="tokenStore" ref="tokenStore"/>
      <property name="supportRefreshToken" value="true"/>
      <property name="clientDetailsService" ref="clientDetails"/>
      </bean>

      <bean id="userApprovalHandler"
      class="org.springframework.security.oauth2.provider.approval.TokenStoreUserApprovalHandler">
      <property name="tokenStore" ref="tokenStore"/>
      <property name="requestFactory" ref="oAuth2RequestFactory"/>

      </bean>

      <!-- Token management -->
      <oauth:authorization-server client-details-service-ref="clientDetails" token-services-ref="tokenServices"
      user-approval-handler-ref="userApprovalHandler" >

      <oauth:authorization-code/>
      <oauth:implicit/>
      <oauth:refresh-token/>
      <oauth:client-credentials/>
      <oauth:password/>


      </oauth:authorization-server>

      <oauth:resource-server id="resourceServerFilter"
      resource-id="dstest"
      token-services-ref="tokenServices"/>

      <!-- Client Definition -->
      <oauth:client-details-service id="clientDetails">
      <oauth:client client-id="xxxxxxxxx"
      authorized-grant-types="password,authorization_code,refresh_token,implicit,redirect"
      authorities="ROLE_USER, ROLE_TRUSTED_USER"
      redirect-uri="/"
      scope="read,write,trust"
      access-token-validity="2678400"
      refresh-token-validity="15552000" />

      </oauth:client-details-service>

      <bean class="org.springframework.security.oauth2.provider.request.DefaultOAuth2RequestFactory" id="oAuth2RequestFactory">
      <constructor-arg ref="clientDetails" />
      </bean>



      </beans>


      applicationContext-security.xml snippet



      <!-- works -->
      <authentication-manager id="authenticationManager" xmlns="http://www.springframework.org/schema/security">
      <authentication-provider user-service-ref="CustomUserDetailsService">
      <password-encoder ref="passwordEncoder"/>
      </authentication-provider>
      </authentication-manager>

      <!-- does not work -->
      <bean id="authenticationManager" class="org.springframework.security.authentication.ProviderManager">
      <constructor-arg>
      <list>
      <ref bean="daoAuthenticationProvider"/>
      </list>
      </constructor-arg>
      </bean>

      <bean id="daoAuthenticationProvider" class="org.springframework.security.authentication.dao.DaoAuthenticationProvider">
      <property name="userDetailsService">
      <ref bean="CustomUserDetailsService"/>
      </property>
      <property name="passwordEncoder">
      <ref bean="passwordEncoder"/>
      </property>
      <property name="hideUserNotFoundExceptions">
      <value>false</value>
      </property>
      </bean>








      share














      My problem is if I use org.springframework.security.authentication.ProviderManager for my autheticationManager in applicationContext-security.xml then I unable to authenticate with oauth2. If I switch back to authentication-manager id="authenticationManager" version then it works fine.



      I have to keep my REST service and oauth2 security settings in separate files. (Sometimes we don't need for REST service at all).



      spring-security 4.2.9.RELEASE
      spring-security-oauth2 2.3.4



      web.xml snippet:



      <context-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>
      /WEB-INF/applicationContext.xml
      /WEB-INF/rest-dispatcher-servlet.xml
      /WEB-INF/rest-dispatcher-servlet-security.xml
      /WEB-INF/applicationContext-security.xml
      </param-value>
      </context-param>


      rest-dispatcher-servlet-security



       <beans xmlns="http://www.springframework.org/schema/beans"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:context="http://www.springframework.org/schema/context"
      xmlns:oauth="http://www.springframework.org/schema/security/oauth2"
      xmlns:secdp="http://www.springframework.org/schema/security"
      xsi:schemaLocation="http://www.springframework.org/schema/beans
      http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
      http://www.springframework.org/schema/security
      http://www.springframework.org/schema/security/spring-security.xsd
      http://www.springframework.org/schema/security/oauth2
      http://www.springframework.org/schema/security/spring-security-oauth2.xsd
      http://www.springframework.org/schema/context
      http://www.springframework.org/schema/context/spring-context-4.3.xsd">



      <!-- Definition of the Authentication Service -->

      <secdp:http use-expressions="false" pattern="/oauth/token" create-session="stateless" authentication-manager-ref="clientAuthenticationManager" xmlns="http://www.springframework.org/schema/security">
      <intercept-url pattern="/oauth/token" access="IS_AUTHENTICATED_FULLY"/>
      <anonymous enabled="false"/>
      <secdp:http-basic entry-point-ref="clientAuthenticationEntryPoint"/>
      <!-- include this only if you need to authenticate clients via request parameters -->
      <custom-filter ref="clientCredentialsTokenEndpointFilter" after="BASIC_AUTH_FILTER"/>
      <access-denied-handler ref="oauthAccessDeniedHandler"/>
      <secdp:csrf disabled="true"/>
      </secdp:http>

      <!-- Protected resources -->
      <secdp:http use-expressions="false" pattern="/ws/api/**"
      create-session="never"
      entry-point-ref="oauthAuthenticationEntryPoint"
      access-decision-manager-ref="accessDecisionManager"
      xmlns="http://www.springframework.org/schema/security">
      <anonymous enabled="false"/>
      <intercept-url pattern="/ws/api/**"
      access="ROLE_USER"/>
      <custom-filter ref="resourceServerFilter"
      before="PRE_AUTH_FILTER"/>
      <access-denied-handler
      ref="oauthAccessDeniedHandler"/>
      <secdp:csrf disabled="true"/>
      </secdp:http>


      <bean id="oauthAuthenticationEntryPoint"
      class="org.springframework.security.oauth2.provider.error.OAuth2AuthenticationEntryPoint">
      <property name="realmName" value="dstest"/>
      </bean>

      <bean id="clientAuthenticationEntryPoint"
      class="org.springframework.security.oauth2.provider.error.OAuth2AuthenticationEntryPoint">
      <property name="realmName" value="dstest/client"/>
      <property name="typeName" value="Basic"/>
      </bean>

      <bean id="oauthAccessDeniedHandler"
      class="org.springframework.security.oauth2.provider.error.OAuth2AccessDeniedHandler"/>

      <bean id="clientCredentialsTokenEndpointFilter"
      class="org.springframework.security.oauth2.provider.client.ClientCredentialsTokenEndpointFilter">
      <property name="authenticationManager" ref="clientAuthenticationManager"/>

      </bean>

      <bean id="accessDecisionManager" class="org.springframework.security.access.vote.UnanimousBased"
      xmlns="http://www.springframework.org/schema/beans">
      <constructor-arg>
      <list>
      <bean class="org.springframework.security.oauth2.provider.vote.ScopeVoter"/>
      <bean class="org.springframework.security.access.vote.RoleVoter"/>
      <bean class="org.springframework.security.access.vote.AuthenticatedVoter"/>
      </list>
      </constructor-arg>
      </bean>

      <authentication-manager id="clientAuthenticationManager" xmlns="http://www.springframework.org/schema/security">
      <authentication-provider user-service-ref="clientDetailsUserService"/>
      </authentication-manager>

      <bean id="clientDetailsUserService"
      class="org.springframework.security.oauth2.provider.client.ClientDetailsUserDetailsService">
      <constructor-arg ref="clientDetails"/>
      </bean>


      <!-- Token Store -->
      <bean id="tokenStore" class="org.springframework.security.oauth2.provider.token.store.JdbcTokenStore"/>

      <bean id="tokenServices" class="org.springframework.security.oauth2.provider.token.DefaultTokenServices">
      <property name="tokenStore" ref="tokenStore"/>
      <property name="supportRefreshToken" value="true"/>
      <property name="clientDetailsService" ref="clientDetails"/>
      </bean>

      <bean id="userApprovalHandler"
      class="org.springframework.security.oauth2.provider.approval.TokenStoreUserApprovalHandler">
      <property name="tokenStore" ref="tokenStore"/>
      <property name="requestFactory" ref="oAuth2RequestFactory"/>

      </bean>

      <!-- Token management -->
      <oauth:authorization-server client-details-service-ref="clientDetails" token-services-ref="tokenServices"
      user-approval-handler-ref="userApprovalHandler" >

      <oauth:authorization-code/>
      <oauth:implicit/>
      <oauth:refresh-token/>
      <oauth:client-credentials/>
      <oauth:password/>


      </oauth:authorization-server>

      <oauth:resource-server id="resourceServerFilter"
      resource-id="dstest"
      token-services-ref="tokenServices"/>

      <!-- Client Definition -->
      <oauth:client-details-service id="clientDetails">
      <oauth:client client-id="xxxxxxxxx"
      authorized-grant-types="password,authorization_code,refresh_token,implicit,redirect"
      authorities="ROLE_USER, ROLE_TRUSTED_USER"
      redirect-uri="/"
      scope="read,write,trust"
      access-token-validity="2678400"
      refresh-token-validity="15552000" />

      </oauth:client-details-service>

      <bean class="org.springframework.security.oauth2.provider.request.DefaultOAuth2RequestFactory" id="oAuth2RequestFactory">
      <constructor-arg ref="clientDetails" />
      </bean>



      </beans>


      applicationContext-security.xml snippet



      <!-- works -->
      <authentication-manager id="authenticationManager" xmlns="http://www.springframework.org/schema/security">
      <authentication-provider user-service-ref="CustomUserDetailsService">
      <password-encoder ref="passwordEncoder"/>
      </authentication-provider>
      </authentication-manager>

      <!-- does not work -->
      <bean id="authenticationManager" class="org.springframework.security.authentication.ProviderManager">
      <constructor-arg>
      <list>
      <ref bean="daoAuthenticationProvider"/>
      </list>
      </constructor-arg>
      </bean>

      <bean id="daoAuthenticationProvider" class="org.springframework.security.authentication.dao.DaoAuthenticationProvider">
      <property name="userDetailsService">
      <ref bean="CustomUserDetailsService"/>
      </property>
      <property name="passwordEncoder">
      <ref bean="passwordEncoder"/>
      </property>
      <property name="hideUserNotFoundExceptions">
      <value>false</value>
      </property>
      </bean>






      java spring spring-security-oauth2





      share












      share










      share



      share










      asked Mar 22 at 14:56









      sfehersfeher

      213




      213






















          0






          active

          oldest

          votes


















          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes

          Popular posts from this blog

          Kamusi Yaliyomo Aina za kamusi | Muundo wa kamusi | Faida za kamusi | Dhima ya picha katika kamusi | Marejeo | Tazama pia | Viungo vya nje | UrambazajiKuhusu kamusiGo-SwahiliWiki-KamusiKamusi ya Kiswahili na Kiingerezakuihariri na kuongeza habari

          SQL error code 1064 with creating Laravel foreign keysForeign key constraints: When to use ON UPDATE and ON DELETEDropping column with foreign key Laravel error: General error: 1025 Error on renameLaravel SQL Can't create tableLaravel Migration foreign key errorLaravel php artisan migrate:refresh giving a syntax errorSQLSTATE[42S01]: Base table or view already exists or Base table or view already exists: 1050 Tableerror in migrating laravel file to xampp serverSyntax error or access violation: 1064:syntax to use near 'unsigned not null, modelName varchar(191) not null, title varchar(191) not nLaravel cannot create new table field in mysqlLaravel 5.7:Last migration creates table but is not registered in the migration table

          은진 송씨 목차 역사 본관 분파 인물 조선 왕실과의 인척 관계 집성촌 항렬자 인구 같이 보기 각주 둘러보기 메뉴은진 송씨세종실록 149권, 지리지 충청도 공주목 은진현