重写 FormAuthenticationFilter.java 类 的 onLoginSuccess 的方法 以后可以 重新跳到https 的链接
@Override
protected boolean onLoginSuccess(AuthenticationToken token, Subject subject, ServletRequest request, ServletResponse response) throws Exception {
String successUrl = null;
boolean contextRelative = true;
SavedRequest savedRequest = WebUtils.getAndClearSavedRequest(request);
if (savedRequest != null && savedRequest.getMethod().equalsIgnoreCase(AccessControlFilter.GET_METHOD)) {
successUrl = savedRequest.getRequestUrl();
contextRelative = false;
}
if (successUrl == null) {
successUrl = getSuccessUrl();
}
if (successUrl == null) {
throw new IllegalStateException("Success URL not available via saved request or via the " +
"successUrlFallback method parameter. One of these must be non-null for " +
"issueSuccessRedirect() to work.");
}
/*
*特别注意 下面方法 最后一个参数 源码注释中有说明,false代表不是http1.0协议跳转,为https跳转
*/
WebUtils.issueRedirect(request, response, successUrl, null, contextRelative,false);
return false;
}
后面发现上面重写了也无用 。于是找到 运维 往nginx 添加一行设置 :
proxy_redirect http:// https://;
然后可以重新跳转回来