写给自己复习
项目引入加密狗,需要对被加密的数据进行缓存然后读取
public class GuavaCache {
private static LoadingCache<String,String> keyCache;//单例
private GuavaCache(){
super();
}
public static LoadingCache<String,String> getKeyCache() {
keyCache = CacheBuilder.newBuilder()
.maximumSize(10)
.expireAfterWrite(3600, TimeUnit.SECONDS)
.build(
new CacheLoader<String, String>() {
public String load(String key) throws Exception {
//加密狗
return printHexString();
}
});
return keyCache;
}
// public static void main(String[] args) {
//
// //printHexString();
// }
}
后台在Filter过滤器中对每次请求判断
public class UserCheck extends HttpServlet implements Filter {
private static final long serialVersionUID = 5256301363755936278L;
//引入缓存数据对象
private static final LoadingCache<String,String> keyCache = GuavaCache.getKeyCache();
public UserCheck() {
}
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterchain) throws java.io.IOException,
javax.servlet.ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp = (HttpServletResponse) response;
HttpSession session = req.getSession();
String path = req.getContextPath();
try {
String key = keyCache.get("key");
ServletContext servletContext = session.getServletContext();
servletContext.setAttribute("key",key);
System.out.println(">>>>>>>>>>>>>>>>>>>>>返回加密狗密钥-servletContext: "+servletContext.getAttribute("key"));
} catch (Exception e) {
e.printStackTrace();
}
try {
String uri = req.getRequestURI();
if (uri.indexOf("/js/") == 0 || uri.endsWith("login.jsp")
|| uri.endsWith("404.jsp")
//|| uri.endsWith("login2.jsp.bak")
|| (uri.indexOf("/update/") == 0)
|| (uri.indexOf("/upload/") == 0)
|| uri.endsWith("managerLogin.action")
|| uri.endsWith("image.jsp") || uri.indexOf("image") > 0
|| uri.indexOf("css") > 0 || uri.endsWith("error.jsp")
|| uri.indexOf("/noCheck/") != -1
|| uri.indexOf("/MP") != -1
)
{
filterchain.doFilter(request, response);
} else if (uri.endsWith("/employeeUpdate.actionM7Update.bin")) {
resp.sendRedirect("/update/M7Update.bin");
} else {
Object mm = session.getAttribute("manager");
if (mm == null) {
resp.sendRedirect(path+"/login.jsp");
} else {
filterchain.doFilter(request, response);
}
}
} catch (Exception e) {
e.printStackTrace();
resp.sendRedirect(path+"/login.jsp");
}
}
}