当前位置: 首页 > 知识库问答 >
问题:

io.undertow.servlet.util.IteratorEnumeration不能强制转换为java.lang.String

楚良平
2023-03-14

我正试图通过登录从报头中发送的API密钥对一个用户进行身份验证,而没有任何用户详细信息。然后,我会得到一个转换异常,因为我试图将主体转换为字符串。

@Bean
    public APIKeyAuthFilter authFilter() {
        APIKeyAuthFilter filter = new APIKeyAuthFilter(principalRequestHeader);
        filter.setAuthenticationManager(authentication -> {
            String principal = (String) authentication.getPrincipal();
            if (!principalRequestValue.equals(principal)){
                throw new BadCredentialsException("The API key was not found or not the expected value.");
            }
            authentication.setAuthenticated(true);
            return authentication;
        });
        return filter;
    }

共有1个答案

安经纶
2023-03-14

我发现我所需要的只是注册安全过滤器的另一个类。

import org.springframework.security.web.context
            .AbstractSecurityWebApplicationInitializer;
public class SpringSecurityInitializer
            extends AbstractSecurityWebApplicationInitializer {
    //no code needed
}

这是这个场景的完整示例,适用于任何需要它的人。Spring

 类似资料: