Osc*_*ron 7 java regex jsp single-sign-on
目前,我们已在我们的Web应用程序中启用了SSO并且运行良好.但是,当用户在SSO中配置而不是在我们的Web应用程序中时,我们正在进行重定向循环.
我们注意到,当发生这种情况时,webapp会调用这样的URL:
/login.jsp?errormsg=The+User%3A+SOMEUSER+doesn%27t+exist
Run Code Online (Sandbox Code Playgroud)
我的强制网址配置是下一个:
com.sun.identity.agents.config.notenforced.uri[0] = /
com.sun.identity.agents.config.notenforced.uri[1] = /-*-.jsp
com.sun.identity.agents.config.notenforced.uri[2] = /-*-.jsp*
com.sun.identity.agents.config.notenforced.uri[3] = /-*-.jsp?*
...
com.sun.identity.agents.config.notenforced.uri.invert = true
Run Code Online (Sandbox Code Playgroud)
我通过SSO强制执行所有jsps验证.但是,我想要做的是定义一个URI,如:
问题是,我可以在SSO URI上使用正则表达式吗?因为那些模式
/-*-.jsp
据我所知,不是正则表达式.
我该如何创建该过滤器?
您认为AMAgent.properties 中的未强制列表模式不是正则表达式是正确的。正如您似乎已经发现的那样,它使用了更加有限的通配符匹配语法。
“我可以在 SSO URI 上使用正则表达式吗?”问题的答案 似乎没有。不幸的是,这里可以做的事情非常有限,因为语法不包括排除特定字符或短语的方法。在不进一步了解要求的情况下,我最好的建议是使用排除列表而不是包含列表:
com.sun.identity.agents.config.notenforced.uri[0] = /-*-.jsp?errormsg*
...
Run Code Online (Sandbox Code Playgroud)
(和com.sun.identity.agents.config.notenforced.uri.invert = false)
当然,您可能需要向此列表添加更多条目,并且它可能会变得很大,但至少它更符合 Oracle 的建议:
当未强制执行的列表被倒置时,代理不会强制执行访问控制的资源数量可能会非常大。因此,应极其谨慎地使用此功能,并且只有在对已部署应用程序的安全要求进行广泛评估之后才可使用。