Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring Boot密钥斗篷-如何验证承载令牌?_Spring_Keycloak_Bearer Token - Fatal编程技术网

Spring Boot密钥斗篷-如何验证承载令牌?

Spring Boot密钥斗篷-如何验证承载令牌?,spring,keycloak,bearer-token,Spring,Keycloak,Bearer Token,密钥斗篷版本2.4.0_最终版 在我的Spring Boot REST API中,我想验证KeyClope中的承载令牌 我遵循以下步骤: 我将maven依赖项和以下内容添加到application.properties中 keycloak.realm = realm keycloak.auth-server-url = http://localhost:8080/auth keycloak.ssl-required = external keycloak.resource = app ke

密钥斗篷版本2.4.0_最终版

在我的Spring Boot REST API中,我想验证KeyClope中的承载令牌

我遵循以下步骤:

我将maven依赖项和以下内容添加到application.properties中

keycloak.realm = realm
keycloak.auth-server-url = http://localhost:8080/auth
keycloak.ssl-required = external
keycloak.resource = app
keycloak.bearer-only = true
keycloak.credentials.secret = ...

keycloak.securityConstraints[0].securityCollections[0].patterns[0] = /r/secure/*
下一步是什么?据我说,这是最后一步,但似乎没有什么作用

更新 application.properties:

server.port = 8081
org.keycloak keycloak-tomcat8-adapter 2.4.0.Final
keycloak.realm = myapp
keycloak.auth-server-url = http://localhost:8080/auth
keycloak.ssl-required = external
keycloak.resource = mybackend
keycloak.bearer-only = true
keycloak.credentials.secret = ...
keycloak.use-resource-role-mappings = false

keycloak.securityConstraints[0].securityCollections[0].name = secure
keycloak.securityConstraints[0].securityCollections[0].patterns[0] = /r/secure/*

您的安全约束必须至少包含一个角色,即:

keycloak.security-constraints[0].securityCollections[0].authRoles[0]=admin

请确保将此tole添加到KeyClope中,并将其分配给您的用户。

您可以使用spring security解决您的问题,如果您可以选择的话。我觉得更好。可以找到说明

例如:

@Override
protected void configure(HttpSecurity http) throws Exception
{
    super.configure(http);
    http
            .authorizeRequests()
            .antMatchers("/customers*").hasRole("USER")
            .antMatchers("/admin*").hasRole("ADMIN")
            .anyRequest().permitAll();
}

您的问题是什么,什么不起作用?Keyclope何时验证令牌?我仍然可以在没有令牌的情况下访问api,没有任何反馈。spring boot在哪个端口上运行,在哪个端口上keydove?spring boot在端口8081(默认值除外)我已经让spring安全适配器+spring boot正常工作。但是,如果您的配置不适合您,则应该进行一些调试。为keydeport适配器启用日志(传递
logging.level.org.keydeport=DEBUG
)然后看看发生了什么。感谢您对这个问题的解决。我现在在服务器上发现了这个错误:NOT_尝试:bearer only添加了一个新问题:我没有足够的声誉来评论其他问题,但出于某些原因,您的Spring Boot应用程序不认为http请求是XHR请求