Keycloak получает ошибку 401, но Spring Security не обрабатывает эту ошибку - PullRequest
0 голосов
/ 26 мая 2020

Проблема в следующем. Я реализовал вход через систему безопасности Keycloak Bearer Spring следующим образом пустой, keycloak выдает ошибку 401. Я не могу поймать @ExceptionHandler следующим образом:

@ ExceptionHandler (RuntimeException.class) protected ResponseEntity keycloakAuthenticationExceptionn (RuntimeException ex) {return buildResponseEntity (new ErrorResponseWrapper (BAD_REQUesponse, new .getLocalizedMessage ()), например, ErrorCode.NOT_AUTHORIZED)); }.

Ответы [ 2 ]

0 голосов
/ 27 мая 2020
**Thanks for answers!**

I think, this is the problem:

Earlier I used dependency keycloak version 4.0.0.Final
pom.xml dependency
    <dependency>
        <groupId>org.keycloak</groupId>
        <artifactId>keycloak-spring-boot-starter</artifactId>
        <version>4.0.0.Final</version>
    </dependency>
 and spring boot version 1.5.4.RELEASE. Everything worked great.
Now I'm using spring boot version 2.1.5.RELEASE and keycloak version 10.0.1
pom.xml dependency
    <dependency>
        <groupId>org.keycloak</groupId>
        <artifactId>keycloak-spring-boot-2-adapter</artifactId>
        <version>10.0.1</version>
    </dependency>
I checked it again from Postman when sending Authorization token "bearer " + "token" in the request header. I get a response with two the same WWW-Authenticate values ​​in the header.


Earlier, header came in a single copy.

Can you please tell me what the problem ?.
0 голосов
/ 26 мая 2020

Я не уверен в ответе, но я столкнулся с чем-то вроде вашего вопроса. ExceptionHandler работает после http-фильтров, поэтому, возможно, исключение Keycloak выбрасывает в его фильтр, прежде чем запрос можно будет обработать с помощью вашего ExceptionHandler. Таким образом, вы можете отслеживать все журналы, чтобы увидеть, откуда возникло исключение. Надеюсь, это вам поможет

...