You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@shiro.apache.org by jasmine <sp...@gmail.com> on 2016/04/05 12:32:10 UTC

Shiro and SOAP WS

Hi!

where can I start for securing my cxf webservices with shiro?
Can you help me with some hint or a guide?

Thank you



--
View this message in context: http://shiro-user.582556.n2.nabble.com/Shiro-and-SOAP-WS-tp7581005.html
Sent from the Shiro User mailing list archive at Nabble.com.

Re: Shiro and SOAP WS

Posted by scSynergy <ro...@scsynergy.de>.
Since you have no web.xml in a cxf project you need a class which extends
EnvironmentLoaderListener to initialize Shiro. Here is our class that we use
- I omitted everything not related to Shiro from this posting (we use
https://ops4j1.jira.com/wiki/display/PAXSHIRO/OPS4J+Pax+Shiro for CDI
integration):

public class ModuleInitializer extends EnvironmentLoaderListener {

    public ModuleInitializer() {
    }

    @Override
    public void contextInitialized(ServletContextEvent sce) {
        super.contextInitialized(sce);
        initializeShiro(sce);
    }
   
    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        super.contextDestroyed(sce);
    }

    // we read our configuration from MongoDB database
    @Override
    protected void customizeEnvironment(WebEnvironment environment) {
        MongoClientOptions.Builder builder =
MongoClientOptions.builder().socketKeepAlive(true).connectionsPerHost(1);
        MongoClientURI uri = new MongoClientURI("mongodb://" + hostPort +
"/" + dbName + "?" + options, builder);
        MongoClient mongo = new MongoClient(uri);
        DBCollection collection =
mongo.getDB(dbName).getCollection("shiro-ini");
        DBCursor cursor = collection.find().sort(new
BasicDBObject("timestamp", -1)).limit(1);
        if (cursor != null && cursor.hasNext()) {
            String iniFile = cursor.next().get("conf").toString();
            Ini ini = new Ini();
            ini.load(iniFile);
            ((CdiIniWebEnvironment) environment).setIni(ini);
        }
        mongo.close();
    }

    @Override
    protected Class<?> determineWebEnvironmentClass(ServletContext
servletContext) {
        return CdiIniWebEnvironment.class;
    }

    private void initializeShiro(ServletContextEvent sce) {
        FilterRegistration.Dynamic dynamic =
sce.getServletContext().addFilter("ShiroFilter",
"org.apache.shiro.web.servlet.ShiroFilter");
        dynamic.setAsyncSupported(true);
        EnumSet<DispatcherType> enumSet = EnumSet.of(REQUEST, FORWARD,
INCLUDE, ERROR, ASYNC);
        dynamic.addMappingForUrlPatterns(enumSet, true, "/*");
    }
...
}



--
View this message in context: http://shiro-user.582556.n2.nabble.com/Shiro-and-SOAP-WS-tp7581005p7581007.html
Sent from the Shiro User mailing list archive at Nabble.com.