【发布时间】:2018-08-08 09:51:26
【问题描述】:
我正在使用 Keycloak 3.4.3 并保护基于 Spring 的 Rest 服务。
下面是Keycloak客户端配置:
Client Protocol: openid-connect<br>
Access Type: public<br>
Standard Flow Enabled: ON<br>
Implicit Flow<br>
Direct Access Grants Enabled: ON<br>
Authorization Enabled: OFF<br>
提供具有公开访问类型的机密是否重要。如果是,我该如何提供秘密,因为我在 Keycloak 客户端配置中找不到任何选项。请帮忙。
2018-02-28 15:19:10.216 警告 7813 --- [nio-8080-exec-2] a.a.ClientIdAndSecretCredentialsProvider:客户端“democlientid” 没有可用的秘密 2018-02-28 15:19:10.375 错误 7813 --- [nio-8080-exec-2] okadapters.OAuthRequestAuthenticator : 失败 把代码变成token
java.net.ConnectException:连接被拒绝(连接被拒绝) 在 java.base/java.net.PlainSocketImpl.socketConnect(Native Method) ~[na:na] 在 java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:400) 〜[无:无] 在 java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:243) 〜[无:无] 在 java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:225) 〜[无:无] 在 java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:402) 〜[无:无] 在 java.base/java.net.Socket.connect(Socket.java:591) ~[na:na] 在 org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:121) ~[httpclient-4.5.5.jar!/:4.5.5] 在 org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:180) ~[httpclient-4.5.5.jar!/:4.5.5] 在 org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:144) ~[httpclient-4.5.5.jar!/:4.5.5] 在 org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:134) ~[httpclient-4.5.5.jar!/:4.5.5] 在 org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:610) ~[httpclient-4.5.5.jar!/:4.5.5] 在 org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:445) ~[httpclient-4.5.5.jar!/:4.5.5] 在 org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:835) ~[httpclient-4.5.5.jar!/:4.5.5] 在 org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83) ~[httpclient-4.5.5.jar!/:4.5.5] 在 org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108) ~[httpclient-4.5.5.jar!/:4.5.5] 在 org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56) ~[httpclient-4.5.5.jar!/:4.5.5] 在 org.keycloak.adapters.ServerRequest.invokeAccessCodeToToken(ServerRequest.java:111) ~[keycloak-adapter-core-3.4.3.Final.jar!/:3.4.3.Final] 在 org.keycloak.adapters.OAuthRequestAuthenticator.resolveCode(OAuthRequestAuthenticator.java:336) ~[keycloak-adapter-core-3.4.3.Final.jar!/:3.4.3.Final] 在 org.keycloak.adapters.OAuthRequestAuthenticator.authenticate(OAuthRequestAuthenticator.java:281) ~[keycloak-adapter-core-3.4.3.Final.jar!/:3.4.3.Final] 在 org.keycloak.adapters.RequestAuthenticator.authenticate(RequestAuthenticator.java:139) ~[keycloak-adapter-core-3.4.3.Final.jar!/:3.4.3.Final] 在 org.keycloak.adapters.tomcat.AbstractKeycloakAuthenticatorValve.authenticateInternal(AbstractKeycloakAuthenticatorValve.java:203) ~[spring-boot-container-bundle-3.4.3.Final.jar!/:3.4.3.Final] 在 org.keycloak.adapters.tomcat.KeycloakAuthenticatorValve.authenticate(KeycloakAuthenticatorValve.java:50) [spring-boot-container-bundle-3.4.3.Final.jar!/:3.4.3.Final] 在 org.keycloak.adapters.tomcat.KeycloakAuthenticatorValve.doAuthenticate(KeycloakAuthenticatorValve.java:57) [spring-boot-container-bundle-3.4.3.Final.jar!/:3.4.3.Final] 在 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:586) [tomcat-embed-core-8.5.27.jar!/:8.5.27] 在 org.keycloak.adapters.tomcat.AbstractKeycloakAuthenticatorValve.invoke(AbstractKeycloakAuthenticatorValve.java:181) ~[spring-boot-container-bundle-3.4.3.Final.jar!/:3.4.3.Final] 在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) [tomcat-embed-core-8.5.27.jar!/:8.5.27]
【问题讨论】: