【发布时间】:2015-01-30 09:38:56
【问题描述】:
我想知道是否可以在没有 shiro.ini 文件的情况下配置 Shiro,我的意思是,如果我需要在 Java 类中硬编码 Shiro 配置,而不是使用 INI 文件,该怎么办?
【问题讨论】:
我想知道是否可以在没有 shiro.ini 文件的情况下配置 Shiro,我的意思是,如果我需要在 Java 类中硬编码 Shiro 配置,而不是使用 INI 文件,该怎么办?
【问题讨论】:
是的,你可以通过
ServletContextHandler context = new ServletContextHandler( ServletContextHandler.SESSIONS );
context.setContextPath( "/" );
context.addEventListener( new EnvironmentLoaderListener() );
// Add root ShiroFilter, all remaining filters and filter chains are defined in shiro.ini's [urls] section.
FilterHolder filterHolder = new FilterHolder( new ShiroFilter() );
ServletHolder servletHolder = new ServletHolder( new MockServlet() );
EnumSet<DispatcherType> types = EnumSet.allOf( DispatcherType.class );
context.addFilter( filterHolder, "/*", types );
context.addFilter( new FilterHolder( new TestFilter() ), "/*", types );
context.addServlet( servletHolder, "/*" );
对于 shiro.ini 文件,请参考this doc:
【讨论】:
或使用 jdbc 自定义领域here
【讨论】:
是的,这是可能的。文档说明了如何做到这一点:
http://shiro.apache.org/configuration.html#Configuration-ProgrammaticConfiguration
【讨论】: