使用spring拦截器进行ip white list & basic authorization验证
public class BasicAuthorizationInterceptor extends HandlerInterceptorAdapter { private static final Logger logger = LoggerFactory.getLogger(BasicAuthorizationInterceptor.class); public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String authorization = request.getHeader("Authorization"); logger.info("Authorization is [{}]", authorization); boolean isAuthSuccess = false; isAuthSuccess = httpBasicAuth(authorization); if(isAuthSuccess){ return true; }else{ response.setStatus(403); response.getWriter().print("Forbidden, unauthorized user"); return false; } } public boolean httpBasicAuth(String authorization) throws IOException{ UserConfig userconf = UserConfig.getInstanced(); if (authorization!=null&&authorization.split(" ").length == 2) { String userAndPass = new String(new BASE64Decoder().decodeBuffer(authorization.split(" ")[1])); String user = userAndPass.split(":").length == 2 ? userAndPass.split(":")[0] : null; String pass = userAndPass.split(":").length == 2 ? userAndPass.split(":")[1] : null; logger.info("Username is [{}],Password is [{}]", user, pass); if(user == null || user.equals("") || pass == null || pass.equals("") ){ return false; } UserInfo userinfo = userconf.getUser(user); if(userinfo == null || !pass.equals(userinfo.getPassword())){ return false; }else{ return true; } } return false; } }
Ip white list:
public class IPWhiteListApiInterceptor extends HandlerInterceptorAdapter { private static final Logger logger = LoggerFactory.getLogger(IPWhiteListApiInterceptor.class); @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String ip = request.getRemoteHost().equals("0:0:0:0:0:0:0:1")?"127.0.0.1":request.getRemoteHost(); logger.info("Request From [{}]",ip); String url = request.getRequestURI(); logger.debug(url); List<String> ip_white_List = SystemConfig.query_Ip_white_list(); if(ip_white_List.contains(ip)){ return true; }else{ response.setStatus(403); response.getWriter().print("Forbidden, unauthorized IP ["+ip+"]"); return false; } } }
spring.xml 配置:
<interceptors> <interceptor> <mapping path="/**" /> <beans:bean class="com.pccw.pns.apiserver.IPWhiteListApiInterceptor" /> </interceptor> <interceptor> <mapping path="/**"/> <beans:bean class="com.pccw.pns.apiserver.BasicAuthorizationInterceptor"/> </interceptor> </interceptors>
相关推荐
yupi0 2020-10-10
spring 2020-08-18
编程点滴 2020-07-29
幸运小侯子 2020-07-05
itjavashuai 2020-07-04
qingjiuquan 2020-06-29
shushan 2020-06-25
小鱿鱼 2020-06-22
咻pur慢 2020-06-18
melonjj 2020-06-17
qingjiuquan 2020-06-13
neweastsun 2020-06-05
小鱿鱼 2020-06-05
mxcsdn 2020-05-31
吾日五省我身 2020-05-27
牧场SZShepherd 2020-05-27
sweetgirl0 2020-05-14