Java EE6CDIインターセプターのセットアップに問題があります。埋め込まれたGlassfishを使用していますが、Webアプリケーションのbeans.xmlでインターセプターを指定しています。
<beans
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
<interceptors>
<class>ServiceInterceptor</class>
</interceptors>
</beans>
私はこのBeanを保護しようとしています:
@Named
//@Stateless
@RequestScoped
public class SecuredMethodJSFBean /*implements Serializable*/{
@Inject
protected SecuredMethodSample securedMethodSample;
/*
@CurrentUser
@SessionScoped
@Inject
protected RuntimePrincipalAware principal;
//protected JSFLoginBean jsfLoginBean;
*/
public SecuredMethodJSFBean()
{
super();
System.out.println("creating secured method jsf bean");
}
@Secured("adfadfafd")
public void doSomething()
{
//System.out.println("\n\n\n\nprincipal:" + principal);
//System.out.println("principal:" + jsfLoginBean.getPrincipal());
//securedMethodSample.doSomething(jsfLoginBean.getPrincipal().getName());
//return(jsfLoginBean.getPrincipal().getName());
//securedMethodSample.doSomething(principal.getName());
//return(principal.getName());
//return("secured-method");
securedMethodSample.doSomething("testing ...");
}
}
インターセプターを実行するにはどうすればよいですか?
また、サーブレットが使用するBeanのメソッド呼び出しをインターセプトするためにインターセプターを使用しようとしています。それらの豆は豆なので、私はそれらを傍受できるはずです。しかし、私はそうすることができません。私はもともとサーブレットでメソッド呼び出しを直接インターセプトしようとしていましたが、CDI Beanではないため、意味がありません。
ありがとう、
ウォルター