Нужно ли мне что-то еще, кроме токена ключа для доступа к сервису, защищенному с помощью ключа? - PullRequest
0 голосов
/ 14 сентября 2018

Я могу получить действительный токен от keycloak, но я все равно получаю ответ 404 not found от службы, защищенной с помощью keycloak, когда я пытаюсь получить к нему доступ с помощью токена.Что еще мне нужно сделать?Что еще нужно для доступа к сервису, защищенному с помощью keycloak?

Я получаю токен на предъявителя.

Я создал самый простой из доступных мне сервис и развернул его как WAR на Wildfly.Я установил адаптер keycloak в wildfly и добавил в войну файл keycloak.json вместе с изменением web.xml.

Для web.xml я добавил информацию из документации:

<module-name>application</module-name>

<security-constraint>
 <web-resource-collection>
   <web-resource-name>Resources</web-resource-name>
   <url-pattern>/resources/*</url-pattern>
 </web-resource-collection>
 <auth-constraint>
    <role-name>user</role-name>
 </auth-constraint>
 <user-data-constraint>
   <transport-guarantee>CONFIDENTIAL</transport-guarantee>
 </user-data-constraint>
</security-constraint>

<login-config>
<auth-method>KEYCLOAK</auth-method>
</login-config>

<security-role>
  <role-name>user</role-name>
</security-role>

Я добавил роль пользователя в keycloak

У меня есть клиентская программа, которая берет пользователя и пароль и возвращает токен из установки keycloak

 AuthzClient authzClient = AuthzClient.create();            
 AccessTokenResponse response = authzClient.obtainAccessToken(name, password);

 String tokenStr = response.getToken();

Затем я пытаюсь использоватьэтот токен, чтобы сделать вызов REST для WAR, защищенного с помощью keycloak:

  String urlString = "http://localhost:8080/simple-rest-0.0.1-SNAPSHOT/resources/message";
  URL url = new URL(urlString); 
  HttpURLConnection con = (HttpURLConnection) url.openConnection();
  con.setRequestMethod("GET");
  String authString = "Bearer " + tokenStr;
  con.setRequestProperty("Authorization", authString);
  basicStatus = con.getResponseCode();

basicStatus возвращает 404. Я просто здесь неправильно использую keycloak?Я что-то упустил?

...