我希望這不是一個「太開放」的問題,但我真的不知道如何處理它。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'參數的信息。 –