我是Keycloak的新手。我开始使用它作为我的spring-boot应用程序的一部分。
我已经扩展了KeycloakWebSecurityConfigurerAdapter和覆盖的方法,如configure,configureGloabl等,以获得特定的身份验证(请参阅下面的代码片段。)
我想知道是否有可能访问JWT令牌对象以获取更多属性。此外,我不清楚如何在用户注销后使令牌无效。目前,一旦有一个用户登录,我就无法签署他,JWT令牌似乎一直在留下。
protected void configure(HttpSecurity http) throws Exception {
super.configure(http);
http.authorizeRequests()
.antMatchers("/customers*")
.hasRole("user")
.anyRequest()
.permitAll();
}
答案 0 :(得分:1)
您可以使用此方法在邮递员中获取访问令牌;
此处 ConfigKeycloak 是领域名称, config-app 是客户端名称。
获取访问令牌的另一种方法是
。case input.downcase
when 'why'
# ...
end
您可以使用此方法从会话中注销。
@RequestMapping(value = "/customers", method = RequestMethod.GET)
@PreAuthorize("hasRole('ROLE_USER')")
public String getCustomers(){
KeycloakAuthenticationToken token = (KeycloakAuthenticationToken) request.getUserPrincipal();
KeycloakPrincipal principal=(KeycloakPrincipal)token.getPrincipal();
KeycloakSecurityContext session = principal.getKeycloakSecurityContext();
AccessToken accessToken = session.getToken();
String a = principal.getName();
username = accessToken.getPreferredUsername();
emailID = accessToken.getEmail();
lastname = accessToken.getFamilyName();
firstname = accessToken.getGivenName();
realmName = accessToken.getIssuer();
AccessToken.Access realmAccess = accessToken.getRealmAccess();
}