带有 Keycloak 的 SpringBoot 从查询参数和标头进行身份验证

时间:2021-02-01 22:47:30

标签: spring-boot keycloak

我有一个使用 Keycloak 的 Springboot 应用程序,其中 Keycloak 根据 Authorization: Bearer <> 标头自动验证请求。我有一个案例,我需要一个直接的 URL 链接而不能添加标题,我想在这种情况下将令牌编码为查询参数。

谁能提出一种既使用身份验证标头又使用 ?token=xxx 模式进行验证的好方法?

这是我的 Spring 安全设置:

   @Autowired
    public void configureGlobal(
            AuthenticationManagerBuilder auth) throws Exception {

        KeycloakAuthenticationProvider keycloakAuthenticationProvider
                = keycloakAuthenticationProvider();
        keycloakAuthenticationProvider.setGrantedAuthoritiesMapper(
                new SimpleAuthorityMapper());
        auth.authenticationProvider(keycloakAuthenticationProvider);
    }

    @Bean
    public KeycloakConfigResolver KeycloakConfigResolver() {
        return new KeycloakConfigResolver() {
            @Override
            public KeycloakDeployment resolve(HttpFacade.Request request) {
                KeycloakDeployment deployment = null;
                AdapterConfig adapterConfig = new AdapterConfig();
                adapterConfig.setAuthServerUrl(System.getProperty("keycloak.auth-server-url"));
                adapterConfig.setRealm(System.getProperty("keycloak.realm"));
                adapterConfig.setResource(System.getProperty("keycloak.resource"));
//                adapterConfig.setUseResourceRoleMappings(true);
                adapterConfig.setSslRequired("external");
                adapterConfig.setPublicClient(true);
                deployment = KeycloakDeploymentBuilder.build(adapterConfig);
                return deployment;
            }
        };
    }

0 个答案:

没有答案