Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security &引用;JACC策略提供程序:权限检查失败“;在没有授权约束的受安全约束的登录页面上_Security_Jakarta Ee_Authentication_Glassfish - Fatal编程技术网

Security &引用;JACC策略提供程序:权限检查失败“;在没有授权约束的受安全约束的登录页面上

Security &引用;JACC策略提供程序:权限检查失败“;在没有授权约束的受安全约束的登录页面上,security,jakarta-ee,authentication,glassfish,Security,Jakarta Ee,Authentication,Glassfish,当从internet向登录页面发出请求时,我从netbeans glassfish输出窗口获得此结果: 信息:JACC策略提供程序:权限检查失败:上下文(“WebApplication2/WebApplication2”)、权限(“javax.security.JACC.WebUserDataPermission”“/login.xhtml”“GET”)) 当从LAN或localhost发出请求并且根据需要通过HTTPS提供页面时,不会发生这种情况 我正在尝试配置登录页面,以便在登录请求期间使用

当从internet向登录页面发出请求时,我从netbeans glassfish输出窗口获得此结果:

信息:JACC策略提供程序:权限检查失败:上下文(“WebApplication2/WebApplication2”)、权限(“javax.security.JACC.WebUserDataPermission”“/login.xhtml”“GET”))

当从LAN或localhost发出请求并且根据需要通过HTTPS提供页面时,不会发生这种情况

我正在尝试配置登录页面,以便在登录请求期间使用传输层安全性保护用户密码。我希望这可以通过在web.xml部署描述符中使用具有声明性安全性的FacesServlet来实现

我使用基于表单的身份验证和非j_security_check自定义Facelet表单,通过request.login方法进行编程登录。登录表单在web.xml中具有以下安全约束:


安全登录
login.xhtml
/login.xhtml
保密的
没有授权约束元素,因为此表单显然是为未经身份验证的用户设计的。存在安全约束的唯一原因是可以将子元素设置为机密,以确保安全连接

Java EE 6教程指出:

如果没有授权约束,容器必须接受请求而不需要用户身份验证

用户数据约束便于与基本和基于表单的用户身份验证结合使用。当登录身份验证方法设置为BASIC或FORM时,密码不受保护,这意味着第三方可以查看和截获在未受保护的会话中客户端和服务器之间发送的密码。在用户身份验证机制中使用用户数据约束可以缓解这种担忧。在部署描述符中指定身份验证机制中描述了配置用户身份验证机制


为什么JACC在访问此资源时不需要进行权限检查?为什么它只在internet上失败而不在LAN上失败?

只需清理项目并重新启动服务器!!这对我很管用!!有时会有某些文件会在缓存中出现!!这些文件可能导致此错误!!因此,在清理项目时,错误将得到修复

这发生在我更改方法签名后。请尝试以下操作:停止Glassfish并清理和构建或删除\Glassfish\domains\domain1\generated中的所有内容。我清理了项目,对其进行了低估,停止了服务器,删除了\Glassfish\domains\domain1\generated,启动了服务器并再次运行web应用程序,但仍然收到相同的消息。尚未@doubleH90,似乎我必须在我的应用服务器中添加负载平衡器或类似的东西(我用Payara取代GlassFish,并使用其最新版本201)