启用 CDI 的 shiro 过滤器
Posted
技术标签:
【中文标题】启用 CDI 的 shiro 过滤器【英文标题】:CDI enabled shiro filter 【发布时间】:2019-01-06 09:29:52 【问题描述】:关于创建启用 CDI 的 shiro 领域的信息已经足够多。就我而言,我需要在自定义 shiro 过滤器中使用 CDI,这可能吗?
public class com.moc.CustFilter
@Inject
private MyUtil myUtil;
// .... using myUtil
shiro.ini
[main]
custFilter = com.moc.CustFilter
[urls]
/web/** = custFilter
【问题讨论】:
Inject CDI managed bean in custom Shiro AuthorizingRealm的可能重复 【参考方案1】:过滤器的构造函数中的这段代码对我来说已经足够了
private SomeUtils utils;
public ApisecAuthcFilter()
try
BeanManager beanManager = (BeanManager) new InitialContext().lookup("java:comp/BeanManager");
Bean<SomeUtils> utilsBean = (Bean<SomeUtils>) beanManager.resolve(beanManager.getBeans(SomeUtils.class));
CreationalContext<SomeUtils> creationalContext = beanManager.createCreationalContext(null);
utils = utilsBean.create(creationalContext);
catch (NamingException e)
throw new SomesException();
【讨论】:
所以你找到了副本:***.com/questions/18507629/…以上是关于启用 CDI 的 shiro 过滤器的主要内容,如果未能解决你的问题,请参考以下文章
如何从过滤器中获取 SessionScoped CDI bean?