使用访问令牌设置Picketlink安全的REST应用程序。
我有一个设置方法(从jboss-picketlink-quickstarts昵称):
public class HttpSecurityConfiguration {
public void onInit(@Observes SecurityConfigurationEvent event) {
SecurityConfigurationBuilder builder = event.getBuilder();
builder.identity()
.stateless()
.http()
.forPath("/account/*")
.redirectTo("/authenticate")
.authenticateWith()
.token()
.cors()
.allowAll();
}
}
添加.redirectTo("/authenticate")
是为了寻找
规避(请参阅下文)。
我还有一个Arquillian测试用例
/authenticate
的内部登录身份成功登录,然后
返回访问令牌。当Arquillian然后尝试获取以前受保护的资源时,
(1)我在Picketlink中发现了一个神秘的NullPointerException
。
14:57:48,653 ERROR [io.undertow.request] (default task-1) UT005023: Exception handling request to /test/api/account: java.lang.NullPointerException
at org.picketlink.http.internal.SecurityFilter.handleException(SecurityFilter.java:260)
at org.picketlink.http.internal.SecurityFilter.doFilter(SecurityFilter.java:198)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:61)
在第260
行
org.picketlink.http.internal.SecurityFilter.handleException
我发现:
private void handleException(PathConfiguration pathConfiguration, HttpServletRequest request, HttpServletResponse response,
Throwable exception) throws IOException {
String redirectUrl = pathConfiguration.getRedirectUrl(exception.getClass()); // <- this is line 260
Throwable cause = exception.getCause();
这告诉我pathConfiguration
变量是null
。
pathConfiguration
变量是什么?何时设置?在那儿
我在设置http安全性时缺少什么?
在我添加上述类之前,所有测试都运行良好。
自设置以来,添加了设置重定向网址的设置行 Picketlink尝试获取路径的重定向URL时发生错误 配置。
我应该添加:
picketlink-impl-2.5.5.SP9.jar
有什么想法吗?
欢呼 垫子