我有以下单点登录方案:
我正在使用preauthentication过滤器在Spring安全性中扩展AbstractPreAuthenticatedProcessingFilter,我已经覆盖了这个函数:
protected Object getPreAuthenticatedPrincipal(HttpServletRequest request) {
String username = getUserName(request); // Line1
// String username = "userA"; // Line2
return username; // Line 3
}
函数getUserName执行第3步和第4步。
当我使用第2行(而不是第1行)时,一切正常,用户可以看到网络应用页面。 当我使用第1行并对其进行调试时,用户名的提取与第2行相同,没有任何异常,但用户获取HTTP错误代码404.在第3行,两个方案都具有相同的值。
我完全不清楚为什么会发生这种情况或错误在哪里? :(任何人都能指出我正确的方向吗?
更新:我回忆的Http 404响应是这样的:
Response Headers Value
Set-Cookie JSESSIONID=b8f8615855da6e92d780f12e2bbe; Path=/<webapp>; Secure; HttpOnly
在浏览器页面刷新时,用户已登录并能够查看该页面。在刷新的情况下,jsessionid不作为url参数出现,但是当我使用第2行时,jsessionid是否作为url参数?我无法理解这种行为。