使用OAUTH2基本安全性在monolithyc Jhipster应用程序中公开api

使用OAUTH2基本安全性在monolithyc Jhipster应用程序中公开api,jhipster,Jhipster,有人能帮我吗 我构建了一个Jhipster monolithyc应用程序,使用基于KeyClope的安全性。这个密钥斗篷可以访问我的公司ldap,一切都很完美。当有人想要一个它重定向到的页面,并且它重定向到keydape以进行登录时,它返回并获得登录用户的令牌,因此用户可以根据其角色用户权限进行访问 现在,我们想向第三方公司公开api,以便重用我的应用程序的业务逻辑。(我们可以通过web服务实现这一点,但我们希望公开我们的restful api)。他们有自己的应用程序(桌面、web等),我们希望

有人能帮我吗

我构建了一个Jhipster monolithyc应用程序,使用基于KeyClope的安全性。这个密钥斗篷可以访问我的公司ldap,一切都很完美。当有人想要一个它重定向到的页面,并且它重定向到keydape以进行登录时,它返回并获得登录用户的令牌,因此用户可以根据其角色用户权限进行访问

现在,我们想向第三方公司公开api,以便重用我的应用程序的业务逻辑。(我们可以通过web服务实现这一点,但我们希望公开我们的restful api)。他们有自己的应用程序(桌面、web等),我们希望公开我们的api,以便他们可以使用相同的安全策略与我们通信。他们在我们的ldap中有用户。有谁能告诉我哪种方法是使用用户角色权限公开它的最佳方法吗

一种方法是,他们可以向我们发送他们的登录信息(用户、密码)。我们知道这不是最好的方法,但我们不知道如何用另一种方法。是否有人知道如何基于此用户登录使用KeyClope登录。我们启用了直接连接,并且我们能够通过密码流获得KeyClope访问令牌。但是,如果我们这样做,我们如何在OAuth2Authentication对象中转换这个令牌,以便生成JSESSIONID来调用api

我们禁用了csrf使之成为可能

有什么想法吗


提前感谢

经过几天的研究,我找到了一个解决方案

代码如下:

@配置

@EnableResourceServer

公共类ResourceServerConfiguration扩展了ResourceServerConfigurerAdapter{

@Bean("resourceServerRequestMatcher")
public RequestMatcher resources() {
    return new AntPathRequestMatcher("/external-access/**");
}

@Override
public void configure(final HttpSecurity http) throws Exception {
    http
        .requestMatcher(resources()).authorizeRequests()
        .anyRequest().authenticated();

}
}

通过这种方式,我既有基于KeyClope的Web安全性,也有基于密码流的资源。对于这个解决方案,我要公开的api既有/api/外部api映射,首先用于web导航,另一个用于直接访问。要通过第二种方式进行访问,您必须调用第一个keydove来获取令牌,然后使用该令牌访问/外部api

也许有更好的解决方案(客户端凭据),但我需要登录用户来恢复端点