我正在尝试用KeyCloak配置我的Spring Security性。我用的是Spring靴。我的POM中有以下依赖项。
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-spring-security-adapter</artifactId>
</dependency>
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-tomcat8-adapter</artifactId>
</dependency>
我使用的是spring boot版本1.5.7。和keycloak版本3.2.1.final以及我的应用程序中的以下属性。properties:
keycloak.enabled=true
keycloak.realm=test
keycloak.auth-server-url=http://localhost:8080/auth
keycloak.ssl-required=external
keycloak.resource=rest
keycloak.bearer-only=true
keycloak.credentials.secret=<secret>
keycloak.principal-attribute=preferred_username
keycloak.security-constraints[0].authRoles[0]=application
keycloak.security-constraints[0].securityCollections[0].name=spring secured api
keycloak.security-constraints[0].securityCollections[0].patterns[0]=/api/**
management.security.enabled=false
我没有其他配置。对于我的endpoint,我使用JAX-RS。为了请求我的令牌,我使用Chrome应用程序邮递员。以下是请求:
POST /auth/realms/test/protocol/openid-connect/token HTTP/1.1
Host: localhost:8080
Cache-Control: no-cache
Postman-Token: <postman token>
Content-Type: application/x-www-form-urlencoded
grant_type=password&client_id=postman&username=root&password=12345678
和我的申请请求:
GET /api/product HTTP/1.1
Host: localhost:18888
Authorization: Bearer <keycloak token from the request above>
Cache-Control: no-cache
Postman-Token: <postman token>
但我的回应是:
{
"timestamp": <timestamp>,
"status": 401,
"error": "Unauthorized",
"message": "Full authentication is required to access this resource",
"path": "/api/product"
}
您没有用Keycloak配置Spring Security性,这里security-constraints
用于保护servlet容器,与Spring Security性无关。使用SpringSecurity时不需要它,添加一个扩展KeycloakWebSecurityConfigurerAdapter
的Secuirty配置类,请查看以下内容:http://www.keycloak.org/docs/3.3/securing_apps/topics/oidc/java/spring-security-adapter.html
当我试图使用访问令牌访问资源时,我正在使用https://github.com/Angel-git/wso2is-springoauth后的wso2is服务器进行Spring Boot安全性示例 {“error”:“未经授权”,“error_description”:“访问此资源需要完全身份验证”} 我正在通过以下方式生成访问令牌: curl-u client_id:client_secret-k
我正在测试Spring Security中的登录方法。我想获得200的地位,但来了401。
我试图在我的API中向一个endpoint发出请求,然而,每次试图访问执行器endpoint都会返回401错误,访问这个资源需要完全身份验证。我只是使用spring security对用户的密码进行加密,然后再将它们存储到数据库中。我已经检查了所有类似的问题,并执行了他们给出的所有解决方案,但仍然没有运气。 securityconfig.java userService.java
我正在应用程序中实现和进行身份验证。 我有3个角色:管理员,版主和用户。 例如,在使用user role登录之后,我得到了主页,但是当我通过点击一个按钮访问用户空间时,我得到了: 2020-09-04 09:01:22.819错误10148---[nio-8080-exec-5]C.B.S.Security.jwt.AuthentryPointJwt:未经授权的错误:访问此资源需要完全身份验证 文
我创建了一个SpringBoot/SpringSecurity/React web应用程序,在本地运行良好,但当我尝试在DigitalOcean生产服务器上运行它时,它失败了 未经授权的错误:访问此资源需要完全身份验证 我没有使用oauth2,只是Spring安全。主页不需要身份验证,所以我不明白错误。建议?