小编Dal*_*vie的帖子

为什么重定向的CORS请求失败?

我的问题是在我的应用程序运行localhost:8080上的angularjs $ http调用

var url "https://api.acme.com/RX/v1/user";
$http.get(url).success(function (data) {
    alert('yay');
$scope.user = data;
});
Run Code Online (Sandbox Code Playgroud)

第一个请求成功,Chrome记录了以下响应:

Status Code:302 Found
Access-Control-Allow-Credentials:true
Access-Control-Allow-Origin:http://localhost:8080
Location:https://login.acme.com/cas/login?service=https%3A%2F%2Fapi.acme.com%2FRX%2Fv1%2Fuser
Run Code Online (Sandbox Code Playgroud)

这导致浏览器向重定向位置发出第二个GET请求:

https://login.acme.com/cas/login?service=https%3A%2F%2Fapi.acme.com%2FRX%2Fv1%2Fuser
Run Code Online (Sandbox Code Playgroud)

第二个请求失败,Chrome中报告了以下错误:

XMLHttpRequest cannot load https://login.acme.com/cas/login?service=https%3A%2F%2Fapi.acme.com%2FRX%2Fv1%2Fuser. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
Run Code Online (Sandbox Code Playgroud)

所以我有一个从源到URL的CORS请求,允许将请求重定向到另一个也配置为允许请求的URL.但是重定向请求失败了.我应该期待这个吗?

请注意,api.acme.com和login.acme.com都配置为允许使用所有来源

Access-Control-Allow-Origin: *
Run Code Online (Sandbox Code Playgroud)

cors angularjs

5
推荐指数
1
解决办法
4088
查看次数

在 Spring Security 中支持具有不同令牌解析器的多个 JWT 颁发者

我按照此处的文档构建了一个 spring security oauth2 资源服务器多租户解决方案:

https://docs.spring.io/spring-security/site/docs/current/reference/html5/#oauth2resourceserver-multitenancy

和这里:

https://docs.spring.io/spring-security/site/docs/current/reference/html5/#oauth2resourceserver-bearertoken-resolver

这工作得很好,但需要注意的是两个发行者都使用相同的不记名令牌解析器。在我的例子中,一个颁发者在授权标头上指定令牌,另一个颁发者在自定义标头中发送令牌。

如何配置 spring security 为每个发行者指定不同的 BearerTokenResolver?

我当前的代码如下,仅当两个颁发者在 X-JWT-ASSERTION 标头中提供令牌时才有效。

@Bean
BearerTokenResolver getTokenResolver()
{
    return new HeaderBearerTokenResolver("X-JWT-ASSERTION");
}
Run Code Online (Sandbox Code Playgroud)
@Configuration
public class JWTSecurityConfig extends WebSecurityConfigurerAdapter {

    @Value("${oauth2.issuer-uris}")
    private String[] issuerUris;

    @Override
    protected void configure(HttpSecurity http) throws Exception {

        var authenticationManagerResolver = new JwtIssuerAuthenticationManagerResolver(issuerUris);

        http
        .authorizeRequests(authz -> authz
                .antMatchers("/api/**").authenticated()
                .anyRequest().permitAll())
        .oauth2ResourceServer(oauth2 -> oauth2.authenticationManagerResolver(authenticationManagerResolver));

    }

}
Run Code Online (Sandbox Code Playgroud)

spring-security-oauth2

5
推荐指数
0
解决办法
1972
查看次数

标签 统计

angularjs ×1

cors ×1

spring-security-oauth2 ×1