【发布时间】:2020-01-21 08:57:29
【问题描述】:
我有一组在 Netflix Zuul 网关后面运行的微服务,它实现了基于 OAUTH2 的安全性,并在成功验证后向浏览器发出 JWT。
所有正常的 Spring MVC 页面都显示正常,但我有一个使用 Jersey 和 JSP 页面的应用程序,其中 Zuul 服务器阻止检索任何 CSS 和 JS 文件并出现 401 错误。
在浏览到 JSP 页面时如何包含当前用户的 JWT?
<!DOCTYPE html>
<%@ page contentType="text/html" language="java" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%
String selectionUri = (String) request.getAttribute("selectionUri");
String removeUri = (String) request.getAttribute("removeUri");
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<meta name="_csrf" content="${_csrf.token}" />
<meta name="_csrf_header" content="${_csrf.headerName}" />
<title>Smart Mine Treeview</title>
<link rel="stylesheet" href="<c:url value='../../static/css/bootstrap-4.0.0-beta.min.css'/>" />
<link rel="stylesheet" href="<c:url value='../../static/css/bootstrap-treeview.css'/>" />
<link rel="stylesheet" href="<c:url value='../../static/css/mimacs.css'/>" />
<link rel="stylesheet" href="<c:url value='../../static/css/all.css'/>">
<script src="<c:url value='../../static/js/jquery-3.2.1.min.js'/>"></script>
<script src="<c:url value='../../static/js/bootstrap-4.0.0-beta.min.js'/>"></script>
<script src="<c:url value='../../static/js/bootstrap-treeview.js'/>"></script>
</head>
<body onLoad='loadTreeview("<%= selectionUri %>")' style="background-color: transparent">
<div id="myFrame" style="display: none;">
<div class="my-frame">
<div class="my-hdr my-title">Location Hierarchy</div>
<div id="treeview" class="treeview my-treeview"></div>
</div>
</div>
</body>
</html>
直接访问页面显示正常,但不能通过代理。 使用浏览器中的链接请求资源。例如http://localhost:30111/my-app/static/js/jquery-3.2.1.min.js,可以通过30111端口托管的网关成功检索到。
因此,我假设 JSP 页面没有提交当前用户的凭据以及资源请求。
关于从哪里开始寻找的任何帮助?
【问题讨论】:
标签: java spring jsp jersey csrf