Tag: 拦截器

获取ContainerRequestFilter中的资源类注释值

我正在努力理解rest拦截器注释如何添加稍后在filter中可见的不同值。 鉴于下面的代码,我希望在filter中,权限值将包含foo和bar,但它们是空的。 任何帮助将不胜感激。 注解 package edu.psu.swe.fortress.poc.interceptor; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import javax.enterprise.util.Nonbinding; import javax.ws.rs.NameBinding; @NameBinding @Target({ElementType.TYPE, ElementType.METHOD}) @Retention(value=RetentionPolicy.RUNTIME) public @interface FortressProtected { @Nonbinding String[] permissions() default {}; } 过滤 package edu.psu.swe.fortress.poc.interceptor; import java.io.IOException; import java.lang.annotation.Annotation; import javax.ws.rs.container.ContainerRequestContext; import javax.ws.rs.container.ContainerRequestFilter; import javax.ws.rs.ext.Provider; @Provider @FortressProtected public class FortressAuthorizer implements ContainerRequestFilter { @Override public […]

无法使用超链接实现Struts 2令牌拦截器

我尝试使用<s:url ..标签实现令牌拦截器,但在第一次单击时显示错误。 即The form has already been processed or no token was supplied, please try again. 我想实现这个拦截器,因为如果用户已经删除了一行并再次刷新页面,那么同一个动作不应该再次执行。 <a href='https://stackoverflow.com/questions/18822095/unable-to-implement-struts-2-token-interceptor-with-hyperlink/’ style=”color: white;text-decoration: none;” class=”delbuttonlink”>Clear current Uploads 和我的struts.xml : uploadforward uploadforward

高级通配符映射在Prepare()方法中找不到参数

从文档中: Struts2的高级通配符映射 : 高级通配符 从2.1.9+开始,可以在动作名称中定义正则表达式。 要使用这种forms的通配符,必须设置以下常量: 正则表达式可以有两种forms,最简单的是{FIELD_NAME} ,在这种情况下,操作中具有FIELD_NAME的字段将填充匹配的文本,例如: /books/content.jsp 在此示例中,如果请求url /fiction/content/Frankenstein ,则BookAction的字段“ type ”将设置为“ fiction ”,字段“ title ”将设置为“ Frankenstein ”。 这绝对是好的,如果你在常规的Action方法中读取这些变量就行了,如execute() 。 如果您尝试从prepare()方法中读取它们,则它们为null,因为PrepareInterceptor在其他负责设置参数的Interceptor之前运行; 解决此问题的常用方法是使用适当的拦截器堆栈来获取在执行prepare()方法时已经填充的参数… 从文档: ParamsPrepareParamStack 这适用于来自页面的参数,但它不适用于Advanced Wildcards设置的参数 。 它们仍然是空的。 如何解决这个问题?

如何修改出站CXF请求的原始XML消息?

我想修改一个传出的SOAP请求。 我想从信封的主体中删除2个xml节点。 我设法设置了一个Interceptor,并将生成的消息集的String值获取到端点。 但是,以下代码似乎不起作用,因为未按预期编辑传出消息。 有没有人有关于如何做到这一点的一些代码或想法? public class MyOutInterceptor extends AbstractSoapInterceptor { public MyOutInterceptor() { super(Phase.SEND); } public void handleMessage(SoapMessage message) throws Fault { // Get message content for dirty editing… StringWriter writer = new StringWriter(); CachedOutputStream cos = (CachedOutputStream)message.getContent(OutputStream.class); InputStream inputStream = cos.getInputStream(); IOUtils.copy(inputStream, writer, “UTF-8”); String content = writer.toString(); // remove the substrings from […]