java - 如何在普通 Java 控制台应用程序中获取 token ?

标签 java angular spring keycloak

我使用 keycloak 来保护 Angular 前端的登录与 Spring Boot 后端的安全。到目前为止效果很好。为此,我使用隐式流和 angular-oauth2-oidc。

现在回答我的问题:我有一个第三个应用程序,它是一个普通的 java 控制台应用程序(无需用户交互的批处理作业)。该应用程序还应该能够与后端 REST API 进行通信,但使用固定 token 或通过用户名/密码。

如何在控制台应用程序中获取不记名 token ?有 API 和示例吗?

最佳答案

使用您在 Angular 应用程序中使用的相同方法来请求 token 怎么样,但使用 Spring 的 RestTemplate

因此,首先您通过调用身份验证服务来获取 token ,然后一旦成功获取它,您就可以将其作为 Authorization: Bearer <token> 添加到 header 中。后续请求实际后端 REST API 执行业务逻辑。

Spring 也有一个包含一些 OAuth2 设施的库,您可能想研究一下。 https://projects.spring.io/spring-security-oauth/docs/oauth2.html 检查描述 OAuth 2.0 客户端的部分。这似乎表明 RestTemplate 有一些扩展添加正确的标题。

就我个人而言,我通常只是自己管理 token ,并在构建 RestTemplate 的请求时将其添加到 header 中。 .

关于java - 如何在普通 Java 控制台应用程序中获取 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54113180/

相关文章:

带有 JPA 2.0 ClassCastException 的 Spring 3.0 ORM

java - 如何使用ControllerListener jinput java

java - 获取 java.lang.NoClassDefFoundError : Filter exception on Jboss

javascript - Angular - 如何使用 Angular CLI 创建子组件

javascript - rxjs如何完成observable?

java - Spring TransactionTemplate 和提交

Java.lang.ArrayIndexOutOfBoundsException - 但程序仍然正确执行?

java - If else 语句的大小为 split

angular - Breezejs、Angular 2 和 OData

java - 如何将数组转换为 Json (Java)