zoukankan      html  css  js  c++  java
  • spring xml 配置文件向Bean 设置List值

    package com.zendaimoney.uc.web.interceptor;

    import java.io.IOException;
    import java.util.List;

    import javax.servlet.FilterChain;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.springframework.security.access.AccessDeniedException;
    import org.springframework.security.core.Authentication;
    import org.springframework.security.core.GrantedAuthority;
    import org.springframework.security.core.context.SecurityContextHolder;
    import org.springframework.web.filter.OncePerRequestFilter;

    public class IPRoleAuthenticationFilter extends OncePerRequestFilter {
    private String targetRole;
    private List<String> allowedIPAddresses;

    public void doFilterInternal(HttpServletRequest req, HttpServletResponse res, FilterChain chain) throws IOException, ServletException {
    // before we allow the request to proceed, we'll first get the user's
    // role
    // and see if it's an administrator
    final Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
    if (authentication != null && targetRole != null) {
    boolean shouldCheck = false;
    // look if the user is the target role
    for (GrantedAuthority authority : authentication.getAuthorities()) {
    if (authority.getAuthority().equals(targetRole)) {
    shouldCheck = true;
    break;
    }
    }
    // if we should check IP, then check
    if (shouldCheck && allowedIPAddresses.size() > 0) {
    boolean shouldAllow = false;
    for (String ipAddress : allowedIPAddresses) {
    if (req.getRemoteAddr().equals(ipAddress)) {
    shouldAllow = true;
    break;
    }
    }

    if (!shouldAllow) {
    // fail the request
    throw new AccessDeniedException("Access has been denied for your IP address: " + req.getRemoteAddr());
    }
    }
    } else {
    logger.warn("The IPRoleAuthenticationFilter should be placed after the user has been authenticated in the filter chain.");
    }
    chain.doFilter(req, res);
    }
    // accessors (getters and setters) omitted
    }

    -------------------------------------------------------------------

    1. <bean id="ipFilter" class="com.packtpub.springsecurity .security.IPRoleAuthenticationFilter">  
    2.   <property name="targetRole" value="ROLE_ADMIN"/>  
    3.   <property name="allowedIPAddresses">  
    4.     <list>  
    5.       <value>1.2.3.4</value>  
    6.     </list>  
    7.   </property>  
    8. </bean>
  • 相关阅读:
    Python列表去重的三种方法
    关于Python的 a, b = b, a+b
    Python爬取B站视频信息
    Linux文件管理命令
    (一)MySQL学习笔记
    Linux特殊字符含义
    在父容器div中图片下方有一条空隙问题
    对Json的各种遍历方法
    for循环使用append问题
    IE兼容性
  • 原文地址:https://www.cnblogs.com/adolfmc/p/2917186.html
Copyright © 2011-2022 走看看