Grails 4 с провайдером spring-security-oauth2: 4.0.0-RC1 - PullRequest
0 голосов
/ 11 марта 2020

Я создал приложение Grails 4.0.2 с этими плагинами:

compile 'org.grails.plugins:spring-security-core:4.0.0'
compile 'org.grails.plugins:spring-security-oauth2-provider:4.0.0-RC1'

Я следовал документации: https://bluesliverx.github.io/grails-spring-security-oauth2-provider/v3/manual/index.html

После того, как я пытаюсь используйте аутентификацию по:

curl -X POST \
     -d "client_id=my-client" \
     -d "grant_type=password" \
     -d "username=my-user" \
     -d "password=my-password" \
     -d "scope=read" http://localhost:8080/oauth/token

Но я получаю эту ошибку:

    URI
/oauth/token
Class
java.lang.IllegalArgumentException
Message
There is no PasswordEncoder mapped for the id "null"
Trace
    Line | Method
->>  244 | matches                        in org.springframework.security.crypto.password.DelegatingPasswordEncoder$UnmappedIdPasswordEncoder
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|    198 | matches                        in org.springframework.security.crypto.password.DelegatingPasswordEncoder
|     90 | additionalAuthenticationChecks in org.springframework.security.authentication.dao.DaoAuthenticationProvider
|    166 | authenticate                   in org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider
|    175 | authenticate . . . . . . . . . in org.springframework.security.authentication.ProviderManager
|    123 | attemptAuthentication          in org.springframework.security.oauth2.provider.client.ClientCredentialsTokenEndpointFilter
|    212 | doFilter . . . . . . . . . . . in org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter
|    334 | doFilter                       in org.springframework.security.web.FilterChainProxy$VirtualFilterChain
|    105 | doFilter . . . . . . . . . . . in org.springframework.security.web.context.SecurityContextPersistenceFilter
|    334 | doFilter                       in org.springframework.security.web.FilterChainProxy$VirtualFilterChain
|     58 | doFilter . . . . . . . . . . . in grails.plugin.springsecurity.web.SecurityRequestHolderFilter
|    334 | doFilter                       in org.springframework.security.web.FilterChainProxy$VirtualFilterChain
|    215 | doFilterInternal . . . . . . . in org.springframework.security.web.FilterChainProxy
|    178 | doFilter                       in     ''
|    193 | internalDoFilter . 

Я нахожу это решение:

https://mkyong.com/spring-boot/spring-security-there-is-no-passwordencoder-mapped-for-the-id-null/

но я не знаю, как применить решение в проекте Grails.

Кто-нибудь может мне помочь?

Спасибо, Кристиан

1 Ответ

0 голосов
/ 12 марта 2020

Я временно решил свой вопрос, установив ресурсы. groovy

beans = {
    userSecPasswordEncoderListener(UserSecPasswordEncoderListener)
     passwordEncoder(NoOpPasswordEncoder) {

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...