小编Sha*_*ith的帖子

获取ContainerRequestFilter中的资源类注释值

我正在努力了解休息拦截器注释如何添加稍后在过滤器中可见的不同值.鉴于下面的代码,我希望在过滤器中,权限值将包含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 {};
}
Run Code Online (Sandbox Code Playgroud)

过滤

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 void filter(ContainerRequestContext requestContext) throws     IOException
  {
    System.out.println("In the interceptor");
    Class<?> clazz = this.getClass();
    FortressProtected annotation = clazz.getAnnotation(edu.psu.swe.fortress.poc.interceptor.FortressProtected.class);

    System.out.println("Annotation? " + clazz.isAnnotation());

    for (Annotation a : clazz.getAnnotations())
    { …
Run Code Online (Sandbox Code Playgroud)

java jax-rs interceptor

10
推荐指数
1
解决办法
6922
查看次数

Kerberos Auth与JAAS和多个领域

所有,

任何人都可以提供有关如何使用JAAS LoginContext对多个KDC/Realm组合进行身份验证的建议.换句话说,如果尝试1对领域A失败,请尝试领域B.

像下面的伪代码.

一如既往,非常感谢任何帮助.

查看plaincopy到clipboardprint?

[realms]   
  some.address.for.auth.one  
  {  
     kdc = some.address.one  
  }  

  some.address.for.auth.two  
  {  
     kdc = some.address.two  
  }  

boolean loginSuccess = false;  

try  
{  
   LoginContext lc = new LoginContext(...);  
   //Try Realm 1  
   lc.login();  
   loginSuccess = true;  
}  
catch(LoginException le)  
{  
  try  
  {  
     LoginContext lc2 = new LoginContext(...);  
     //Try Realm 2  
     lc2.login();  
     loginSuccess = true;  
  }  
  catch(LoginException le)  
  {  
     //...  
  }  
}  

return loginSuccess;  
Run Code Online (Sandbox Code Playgroud)

kerberos jaas

5
推荐指数
1
解决办法
1316
查看次数

标签 统计

interceptor ×1

jaas ×1

java ×1

jax-rs ×1

kerberos ×1