我已经创建了一个简单的Sping Boot 应用程序,我已经使用keycloak进行了验证。当我调用服务(http://localhost:8080/table1data)时,它会将我重定向到keycloak登录page,在那里我插入我的域用户名和密码,然后它会返回数据。现在一切都很顺利。
如果我的用户已经拥有相应领域的有效令牌,并且他希望使用正确的令牌访问相同的URL,则不应将用户重定向到keycloak登录page(这是有意义的,因为用户有有效的令牌)。我如何从我的spring Boot 应用程序中创建这个场景?i-e将令牌传递给spring Boot 服务,该服务从keycloak验证此令牌,而不是将我重定向到登录页面。
我的控制器代码
public class Table1Controller {
@Autowired
private ITable1Repository table1Repository;
@GetMapping("/table1data")
public List<Table1Entity> getAllTable1Data() {
return table1Repository.findAll();
}
}
PS:我已经使用 Postman 生成了令牌(附图片)
2条答案
按热度按时间ryevplcw1#
您需要在HTTP请求中添加一个Authorization请求,并将“Bearer my-sample-token”作为值,将令牌放在此处。
使用 Postman 的示例
在“授权”选项卡中,您需要选择类型“* 不记名令牌 ”,并在“ 令牌 *”字段中添加您的访问令牌。
它基本上翻译为“授权:Bearer your-token”头,而我通常使用 Inherit auth from parent 选项,所以如果您使用请求集合,您可以将令牌添加到集合本身,集合中的每个请求都可以获得它。
如果您使用的是keycloak测试服务器,则还可以考虑设置更长的访问令牌寿命,以避免必须如此频繁地获取一个令牌。
t9eec4r02#
下面是一个使用
org.springframework.http.ResponseEntity
: