use of org.eclipse.jetty.server.SessionIdManager in project jena by apache.
the class ExFusekiMain_2_AddShiro method addShiroFilter.
// From Barry Nouwt : https://lists.apache.org/thread.html/r1e3fa952ff9f4a9108e16f07f1edf78c67e08c9b081497c627e3b833%40%3Cusers.jena.apache.org%3E
public static void addShiroFilter(FusekiServer fusekiServer) {
Server jettyServer = fusekiServer.getJettyServer();
ServletContextHandler servletContextHandler = (ServletContextHandler) jettyServer.getHandler();
ServletHandler servletHandler = servletContextHandler.getServletHandler();
// for shiro
EnvironmentLoaderListener ell = new EnvironmentLoaderListener();
servletContextHandler.addEventListener(ell);
// Copies
List<FilterMapping> mappings = new ArrayList<FilterMapping>(Arrays.asList(servletHandler.getFilterMappings()));
List<FilterHolder> holders = new ArrayList<FilterHolder>(Arrays.asList(servletHandler.getFilters()));
{
// add Shiro Filter and mapping
FilterHolder holder1 = new FilterHolder();
holder1.setFilter(new ShiroFilter());
FilterMapping mapping1 = new FilterMapping();
mapping1.setFilterName(holder1.getName());
mapping1.setPathSpec("/*");
mapping1.setDispatcherTypes(EnumSet.allOf(DispatcherType.class));
mappings.add(0, mapping1);
holders.add(0, holder1);
}
FilterMapping[] mappings3 = new FilterMapping[mappings.size()];
mappings3 = mappings.toArray(mappings3);
FilterHolder[] holders3 = new FilterHolder[holders.size()];
holders3 = holders.toArray(holders3);
servletHandler.setFilters(holders3);
servletHandler.setFilterMappings(mappings3);
// Specify the Session ID Manager
SessionIdManager idmanager = new DefaultSessionIdManager(jettyServer);
jettyServer.setSessionIdManager(idmanager);
// Specify the session handler
SessionHandler sessionsHandler = new SessionHandler();
sessionsHandler.setUsingCookies(false);
servletHandler.setHandler(sessionsHandler);
}
Aggregations