okta认证应用时如何获取session
How to get session when okta authenticates the application
我确实按照以下步骤操作并使我的应用程序正常运行。
https://developer.okta.com/docs/guides/implement-grant-type/authcode/main/#grant-type-flow
但是一旦用户通过身份验证我就无法获得会话。
我正在使用 ServletFilter 导航到 okta 登录页面(通过 /authorize 端点),但我没有在 doFilter 方法中获取会话。
我正在为我的 UI 使用 Primefaces。
这是我的示例代码。
在 ServletFilter class... 它来到这里,但 return 会话总是空的。
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
HttpServletResponse httpServletResponse = (HttpServletResponse) servletResponse;
HttpSession httpSession = httpServletRequest.getSession(false); // return null here
这是我导航到 okta 登录页面的 doFilter 中的代码。
httpServletResponse.sendRedirect("https://XXX.oktapreview.com/oauth2/default/v1/authorize?client_id=0oa1w21hrnFPT01d7&response_type=code&response_mode=query&scope=openid%20email%20profile%20groups&state=xyz&redirect_uri=http://<host>:<port>/app");
正如 Scary Wombat 在评论中提到的,它适用于创建的新会话。谢谢。
我确实按照以下步骤操作并使我的应用程序正常运行。 https://developer.okta.com/docs/guides/implement-grant-type/authcode/main/#grant-type-flow
但是一旦用户通过身份验证我就无法获得会话。 我正在使用 ServletFilter 导航到 okta 登录页面(通过 /authorize 端点),但我没有在 doFilter 方法中获取会话。
我正在为我的 UI 使用 Primefaces。
这是我的示例代码。 在 ServletFilter class... 它来到这里,但 return 会话总是空的。
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
HttpServletResponse httpServletResponse = (HttpServletResponse) servletResponse;
HttpSession httpSession = httpServletRequest.getSession(false); // return null here
这是我导航到 okta 登录页面的 doFilter 中的代码。
httpServletResponse.sendRedirect("https://XXX.oktapreview.com/oauth2/default/v1/authorize?client_id=0oa1w21hrnFPT01d7&response_type=code&response_mode=query&scope=openid%20email%20profile%20groups&state=xyz&redirect_uri=http://<host>:<port>/app");
正如 Scary Wombat 在评论中提到的,它适用于创建的新会话。谢谢。