apache - Whitelist user IPs in Shiro -
i enable facebook crawl website, needs user authentication. facebook says 1 way around whitelist ips. using apache shiro , know can client's ip calling gethost basichttpauthenticationfilter, not know how let ip addresses past authentication.
you have build custom implementation of shrio's
org.apache.shiro.web.filter.authc.authenticatingfilter   minimally, have customize basichttpauthenticationfilter extending , adding logic skip basichttpauthenticationfilter if request coming whitelisted ip address.
package com.acme.web.filter.authc;  import java.io.ioexception; import java.util.collections; import java.util.hashset; import java.util.set;  import javax.servlet.servletexception; import javax.servlet.servletrequest; import javax.servlet.servletresponse;  public class whitelistedbasichttpauthenticationfilter extends basichttpauthenticationfilter {      private set<string> whitelist = collections.emptyset();      public void setwhitelist(string list) {         whitelist = new hashset<string>();         collections.addall(whitelist, list.split(",")); //make sure there no spaces in string!!!!     }     @override     protected boolean isenabled (servletrequest request, servletresponse response) throws servletexception, ioexception     {         if (whitelist.contains(request.getremoteaddr())) {             return false;         }         return super.isenabled(request, response);     } }   in 'shiro.ini'
authc=com.acme.web.filter.authc.whitelistedbasichttpauthenticationfilter authc.whitelist=192.168.1.1,192.168.1.2,192.168.2.3      
Comments
Post a Comment