提交 aa3b4438 authored 作者: inroi's avatar inroi

微调

上级 99bff38f
package com.shr.filter; package com.shr.filter;
import com.alibaba.fastjson.JSON;
import com.shr.common.response.RestResponse;
import com.shr.config.ThreadLocalConfig; import com.shr.config.ThreadLocalConfig;
import org.eetrust.security.client.util.AssertionHolder; import org.eetrust.security.client.util.AssertionHolder;
...@@ -9,6 +11,7 @@ import javax.servlet.http.HttpServletRequest; ...@@ -9,6 +11,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter;
/** /**
* @author Inori * @author Inori
...@@ -18,7 +21,7 @@ public class SecurityFilter implements Filter { ...@@ -18,7 +21,7 @@ public class SecurityFilter implements Filter {
public static final String SUBJECT_USER = "_subject_user_"; public static final String SUBJECT_USER = "_subject_user_";
@Override @Override
public void init(FilterConfig filterConfig) throws ServletException { public void init(FilterConfig filterConfig) {
} }
@Override @Override
...@@ -29,6 +32,7 @@ public class SecurityFilter implements Filter { ...@@ -29,6 +32,7 @@ public class SecurityFilter implements Filter {
final HttpServletResponse response = (HttpServletResponse) servletResponse; final HttpServletResponse response = (HttpServletResponse) servletResponse;
final HttpSession session = request.getSession(false); final HttpSession session = request.getSession(false);
if (session == null) { if (session == null) {
this.writeResponse(response, "This Session Not Found");
//response.sendRedirect(request.getContextPath() + "/accessDenied.jsp"); //response.sendRedirect(request.getContextPath() + "/accessDenied.jsp");
return; return;
} }
...@@ -38,6 +42,7 @@ public class SecurityFilter implements Filter { ...@@ -38,6 +42,7 @@ public class SecurityFilter implements Filter {
if (user == null) { if (user == null) {
user = AssertionHolder.getAssertion().getPrincipal().getName(); user = AssertionHolder.getAssertion().getPrincipal().getName();
if (user == null) { if (user == null) {
this.writeResponse(response, "This Session Not Found");
//response.sendRedirect(request.getContextPath() + "/accessDenied.jsp"); //response.sendRedirect(request.getContextPath() + "/accessDenied.jsp");
return; return;
} }
...@@ -54,5 +59,20 @@ public class SecurityFilter implements Filter { ...@@ -54,5 +59,20 @@ public class SecurityFilter implements Filter {
public void destroy() { public void destroy() {
} }
private void writeResponse(HttpServletResponse httpServletResponse, String message) {
httpServletResponse.setHeader("Cache-Control", "no-store, max-age=0, no-cache, must-revalidate");
httpServletResponse.addHeader("Cache-Control", "post-check=0, pre-check=0");
httpServletResponse.setHeader("Pragma", "no-cache");
httpServletResponse.setCharacterEncoding("UTF-8");
httpServletResponse.setContentType("application/json;charset=UTF-8");
RestResponse resp = RestResponse.fail(message).setCode(RestResponse.CODE_TOKEN_NOTFOUND);
try (PrintWriter printWriter = httpServletResponse.getWriter()) {
printWriter.write(JSON.toJSONString(resp));
} catch (IOException e) {
e.printStackTrace();
}
}
} }
package com.shr.filter; package com.shr.filter;
import com.alibaba.fastjson.JSON;
import com.eetrust.security.plugin.MessageConstants; import com.eetrust.security.plugin.MessageConstants;
import com.eetrust.security.plugin.SIDPlugin; import com.eetrust.security.plugin.SIDPlugin;
import com.shr.common.response.RestResponse;
import com.shr.utils.StringUtil; import com.shr.utils.StringUtil;
import javax.servlet.ServletConfig; import javax.servlet.ServletConfig;
...@@ -11,6 +13,7 @@ import javax.servlet.http.HttpServlet; ...@@ -11,6 +13,7 @@ import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter;
/** /**
* @author Inori * @author Inori
...@@ -28,7 +31,7 @@ public class VerifyTicketServlet extends HttpServlet { ...@@ -28,7 +31,7 @@ public class VerifyTicketServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse response) { public void doPost(HttpServletRequest request, HttpServletResponse response) {
String ticket = request.getParameter("ticket"); String ticket = request.getParameter("ticket");
if (StringUtil.isEmpty(ticket)) { if (StringUtil.isEmpty(ticket)) {
this.responseJsonMsg(response, "单点登录缺少登录票据[ticket]信息!"); this.writeResponse(response, "单点登录缺少登录票据[ticket]信息!");
return; return;
} }
...@@ -46,14 +49,14 @@ public class VerifyTicketServlet extends HttpServlet { ...@@ -46,14 +49,14 @@ public class VerifyTicketServlet extends HttpServlet {
if (result == MessageConstants.SECURITY_SERVICE_SUCCESS) { if (result == MessageConstants.SECURITY_SERVICE_SUCCESS) {
// 票据验证成功, 获取用户唯一标识 // 票据验证成功, 获取用户唯一标识
String passport = sid.getPassport(); String passport = sid.getPassport();
this.responseJsonMsg(response, "单点登录成功! 用户唯一标识: " + passport); this.writeResponse(response, "单点登录成功! 用户唯一标识: " + passport);
} else { } else {
// 认证失败, 获取错误编码 // 认证失败, 获取错误编码
String errorCode = sid.getErrorCode(); String errorCode = sid.getErrorCode();
// 认证失败, 获取错误信息 // 认证失败, 获取错误信息
String errorMsg = sid.getErrorMsg(); String errorMsg = sid.getErrorMsg();
this.responseJsonMsg(response, "单点登录失败! 错误编码: " + errorCode + ", 错误信息: " + errorMsg); this.writeResponse(response, "单点登录失败! 错误编码: " + errorCode + ", 错误信息: " + errorMsg);
} }
} }
...@@ -62,14 +65,16 @@ public class VerifyTicketServlet extends HttpServlet { ...@@ -62,14 +65,16 @@ public class VerifyTicketServlet extends HttpServlet {
doPost(request, response); doPost(request, response);
} }
public void responseJsonMsg(HttpServletResponse response, String msg) { private void writeResponse(HttpServletResponse httpServletResponse, String message) {
try { httpServletResponse.setHeader("Cache-Control", "no-store, max-age=0, no-cache, must-revalidate");
response.setHeader("Cache-Control", "no-store, max-age=0, no-cache, must-revalidate"); httpServletResponse.addHeader("Cache-Control", "post-check=0, pre-check=0");
response.addHeader("Cache-Control", "post-check=0, pre-check=0"); httpServletResponse.setHeader("Pragma", "no-cache");
response.setHeader("Pragma", "no-cache"); httpServletResponse.setCharacterEncoding("UTF-8");
response.setContentType("text/plain;charset=UTF-8"); httpServletResponse.setContentType("application/json;charset=UTF-8");
response.getWriter().write(msg);
response.flushBuffer(); RestResponse resp = RestResponse.fail(message).setCode(RestResponse.CODE_TOKEN_NOTFOUND);
try (PrintWriter printWriter = httpServletResponse.getWriter()) {
printWriter.write(JSON.toJSONString(resp));
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
......
...@@ -7,12 +7,12 @@ import java.util.*; ...@@ -7,12 +7,12 @@ import java.util.*;
/** /**
* @author Inori * @author Inori
*/ */
public class CommonUtils { public class CommonUtil {
private static final String BUNDLE_NAME = "com.eetrust.security.sso.config"; private static final String BUNDLE_NAME = "com.eetrust.security.sso.config";
private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME); private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME);
private CommonUtils() { private CommonUtil() {
} }
public static String getString(String key) { public static String getString(String key) {
......
# #
#Thu Feb 10 15:27:19 CST 2022 #Tue Jul 19 17:57:20 CST 2022
otp.domino.secret=erewqreqr876 otp.domino.secret=erewqreqr876
cookie.domain=.vanke.com cookie.domain=.vanke.com
openid.domino.secret=erewqre99988 openid.domino.secret=erewqre99988
email.domino.secret=erewqreqr888 email.domino.secret=erewqreqr888
token.expiration=30 token.expiration=30
domino.secret=BfTfatX8F+HwNNejYEGtu3ZSJTWOZ/t8\= domino.secret=BTfa8F+HwNejYEGtuZShJTW3OZw/1t8E\=
\ No newline at end of file
...@@ -21,7 +21,7 @@ spring: ...@@ -21,7 +21,7 @@ spring:
datasource: datasource:
url: jdbc:mysql://127.0.0.1:3306/shr_server?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=CTT&allowPublicKeyRetrieval=true url: jdbc:mysql://127.0.0.1:3306/shr_server?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=CTT&allowPublicKeyRetrieval=true
username: inori username: root
password: 123456 password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.mysql.cj.jdbc.Driver
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论