我们有一个供应商提供的解决方案,需要用户名和密码来利用其作为Web服务公开的API。它们将包含在调用的实际xml中。我们显然不喜欢那样。
是否有人知道我们可以使用基于令牌的安全性对呼叫系统进行身份验证的任何产品,系统,然后将其注入用户名密码并在产品可访问的安全区域(而不是外部呼叫者)中转发请求。当然返回响应。
我不断收到以下错误:" 无法找到命名参数[articleCommentId] "但它对我没有意义,因为对我来说命名参数非常到位.
public ArticleCommentForDisplay getCommentByArticleCommentId(BigInteger articleCommentId) {
String queryString = "select c.article_comment_id, "
+ " c.article_id, "
+ " c.parent_comment_id, "
+ " p.nickname, "
+ " c.title, "
+ " c.comment, "
+ " c.person_id, "
+ " c.confirmed_user, "
+ " c.comment_depth, "
+ " c.moderation_rank, "
+ " c.moderation_reason, "
+ " c.hide, "
+ " c.hide_reason, "
+ " c.session_id, "
+ " c.confirmation_uuid, "
+ " c.created_timestamp, "
+ " c.created_by_id, "
+ " …Run Code Online (Sandbox Code Playgroud) print ("Tag Value " + i.tags.get('Name'))
Run Code Online (Sandbox Code Playgroud)
给我:
File "./boto_test.py", line 19, in main
print ("Tag Value" + i.tags.get('Name'))
TypeError: cannot concatenate 'str' and 'NoneType' objects
Run Code Online (Sandbox Code Playgroud)
这样做的正确方法是什么?
单击它时,很容易禁用命令按钮.但是说表单验证失败(使用ajax和不使用).如果验证无法允许用户修复错误并重试,如何重新启用命令按钮?
我在f:metadata元素中使用prerender视图事件调用另一个页面.
如果我使用<h:link>它导航到页面工作并调用侦听器方法.
但是,如果我使用属于调用页面的托管bean的操作方法的结果导航到页面,则不会调用prerenderview中指定的侦听器(如果通过链接调用它).它会导航到第二页,只是没有监听器调用.
我真的更喜欢从action方法调用,因为我使用它来做一些工作并在会话映射中放置一个变量来使用.我不确定如何使用链接实现相同的功能.对象可能相当大...... kb不是Mb,但仍然不是我想要放在请求中的东西.
我已经尝试使调用页面请求的托管bean作用域并查看作用域.
如果从托管bean结果调用它,是不是可以获取prerenderview?正如我所说,我从一个链接开始工作.
<body>
<ui:define name="metadata">
<f:view>
<f:metadata>
<f:event type="preRenderView" listener="#{businessBean.init}" />
</f:metadata>
</f:view>
</ui:define>
<ui:composition template="#{navigationprops.soulard_2col_uprefs_template}">
Run Code Online (Sandbox Code Playgroud) 问题如下:EJB 抛出此异常(来自 glassfish 日志):
SEVERE: Attempting to confirm previously confirmed login using confirmation UUID: b90b33ca-dc69-41c1-9c60-99152810c89b
com.extremelatitudesoftware.els_commons.exceptions.LoginPreviouslyConfirmedException: Attempting to confirm previously confirmed login using confirmation UUID: b90b33ca-dc69-41c1-9c60-99152810c89b
at com.extremelatitudesoftware.security.auth.CredentialsController.checkForPreviousConfirmation(CredentialsController.java:244)
Run Code Online (Sandbox Code Playgroud)
在异常堆栈的客户端(在底部)我看到:
WARNING: StandardWrapperValve[Faces Servlet]: PWC1406: Servlet.service() for servlet Faces Servlet threw exception
java.lang.NullPointerException
at com.extremelatitudesoftware.accesscontrol.registration.RegistrationConfirmationBean.setChallengeQuestion(RegistrationConfirmationBean.java:61)
at com.extremelatitudesoftware.accesscontrol.registration.RegistrationConfirmationBean.fetchChallengeResponse(RegistrationConfirmationBean.java:51)
Run Code Online (Sandbox Code Playgroud)
当然,在浏览器中我收到一个通用 500 异常错误,表示存在空指针异常。
我想要一个自定义错误页面来检测“com.extremelatitudesoftware.els_commons.exceptions.LoginPreviouslyConfirmedException”并说“哎呀,你已经确认了这一点!”
有人可以为我指出正确的方向,让客户端/JSF 层正确地“看到”异常,以便可以完成此操作。
这是该问题的用例:
我在 EJB 层中有一个方法,用于检查用户之前是否已确认其登录帐户。如果他们还没有,它会处理他们确认新帐户的请求。如果他们说回到旧电子邮件并说,嗯,让我们再次单击该电子邮件,后端将检测到这一点,并抛出异常,以便 JSF/客户端层拾取该异常,并且将通知用户该帐户已被确认。
添加示例代码:
方法检查条件并在必要时抛出异常。请注意,大多数情况下不会发生这种情况,因此我想使用此机制,而不是每次有人确认其帐户时都进行不必要的调用。
...
private void checkForPreviousConfirmation(Credentials cr)
throws LoginPreviouslyConfirmedException {
if (!(CredentialsStatusType.PENDING.equals(cr.getStatus()))
|| !(CredentialsDispositionType.WAITING.equals(cr.getDisposition()))) {
String msg = "Attempting to confirm previously …Run Code Online (Sandbox Code Playgroud) jsf-2 ×3
java ×2
ejb ×1
exception ×1
facelets ×1
form-submit ×1
hibernate ×1
inject ×1
jpa ×1
managed-bean ×1
proxy ×1
python ×1
security ×1
string ×1
validation ×1
web-services ×1