我希望这不是一个“太开放”的问题,但我真的不知道如何处理它。JSP和OAUTH2身份验证
我有一个使用Java JSP编写的工作Web应用程序,以及一些运行在Tomcat 7和MySQL DB上的Rest的泽西接口。这是一个非常简单的基于表单的应用程序。目前我已在AWS上运行。
的JSP是这样的:
<%
String inmsg = request.getParameter("msg");
%>
<html>
<head>
...
,其余类是这样的:
@Path("/operation")
public class IntrfcOperation {
String response="";
int retcode=0;
String id;
String name;
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response baserest(
@Context HttpServletRequest hsreq,
@Context HttpServletResponse hsresp)
{
response ="";
...
String outjson = "{\"retcode\":\"" + retcode + "\",\"name\":\"" + name + "\",\"msg\":\"" + response + "\"}";
return Response.status(200).entity(outjson).build();
}
我想结合认证层,我想用一个OpenID/OAuth2用户服务器,可能是AWS的(IAM?)。我看到的问题是,该协议(就我所尝试的)而言,需要一个/唯一的重定向url,这是发送到Identity Manager的每个请求的返回点。我的问题是,我没有一个URL,而是一堆,每个JSP和Rest入口点都有一个。
什么应该是正确的方法来改造呢?我看到的唯一方法(并且在此刻没有将其视为选项)是将整个应用程序重写为单个JSP脚本,其中将所有不同的操作和页面标识为单个入口点的参数。还有另一种更简单的方法吗?
我已阅读RFC和许多教程,但我总是以相同的问题结束(也许我没有正确解释过):没有中央仪表板,但许多jsp可以通过菜单导航。这意味着多个URL(http://url/path/page1.jsp,http://url/path/page2.jsp ... http://url/path/pageX.jsp)。每个人都应该有一些身份验证功能(没有令牌 - >重定向到登录页面并返回)。和OpenId/Oauth2一样,我应该为每个url定义一个不同的APP或者将它们作为参数导航(navigator.jsp?page1,navigator.jsp?page2,... navigator.jsp?pageX) – jordi
我编辑了响应包括关于'state'参数的信息。 –