点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好社区, 我想使用客户...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好社区, 我想使用客户...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好社区,
我想使用客户端证书认证来保护我的JAVA Servlet之一:
字符串用户= request.getRemoteUser(); //验证用户身份 如果(用户!= null){ _Logger.info("用户已通过身份验证"); } 其他{ //验证用户身份 LoginContext loginContext; 尝试{ loginContext = LoginContextFactory.createLoginContext(" CERT"); loginContext.login(); //更新用户 用户= request.getRemoteUser(); } catch(LoginException e){ _Logger.error("身份验证失败:",e); 返回; } }
我创建了证书,并与我的CA签署了证书。 我将证书添加到密钥库中,并按以下说明将其上传到SCP:
此外,我将域 cert.hana.ondemand.com 添加到了我的域中 Java应用程序。
例如,当我使用工具" SoapUi"或JAVA HttpClient调用servlet并发送证书时,我总是使用LoginException:
avax.security.auth.login.LoginException:客户端证书在请求中不可用
有人知道出什么问题了吗?
最好的问候和感谢,
克里斯
克里斯托弗,你好
您如何访问您的应用程序?
发出发出向其添加" cert"域的neo命令后,这是访问应用程序的正确方法。
代替:
我生成了一个战争文件,并使用驾驶舱来部署该应用程序,因此我可以如下指定VM参数:
如果您在部署期间未指定此选项,则您的证书URL将不起作用。
您可以通过neo deploy命令指定此VM参数,但是您必须事先准备application.properties文件。
请注意,如果您未使用此处客户端证书将永远不会被浏览器发送,因为它不是SCP信任的证书。
如果是这种情况,建议您将SCP与公司IdP一起使用,以使用SAML对用户进行身份验证。 此设置将支持内部CA颁发的证书(因为身份验证委托给您的IdP),并且该身份验证对于SCP上的所有应用程序均有效。
我看到了以下附加的VM参数:
尽管如此,请检查此jks上需要哪些CA,因为它们与您用于本地测试的CA可能不完全相同。 您所需要做的就是对存储在浏览器中的p12客户端证书进行签名的根证书和中间证书。
希望有帮助。
关于,
Ivan
一周热门 更多>