springsecurity的登陆用户信息查询接口的校验或hasIpAddress()用法

springsecurity的登陆用户信息查询接口的校验或hasIpAddress()用法

一般的微服务架构下,auth服务都是单独的只做token颁发和校验的模块,所以当在进行用户登录或其他操作的时候,都需要调用其他的服务进行用户信息的查询和密码比对。
那么其他服务的这个接口的隐蔽性就会受到挑战。
但是发现在springsecurity的权限控制当中,有一个方法很好用:
hasIpAddress()

    @Value(value = "${auth.address}")
    private String ipAddress;

    @Override
    public void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .antMatchers(properties.getUrls()).permitAll()
                //这里的hasIpAddress好像必须用access表达式写,要不然就会失效
                .antMatchers("/base/user/info").access("hasIpAddress('"+ipAddress+"')")
                .antMatchers("/base/user/test").access("hasIpAddress('"+ipAddress+"')")
                .anyRequest().authenticated()
                .and()
                .exceptionHandling()
                .accessDeniedHandler(new RestfulAccessDeniedHandler())
                .authenticationEntryPoint(new RestAuthenticationEntryPoint());
    }

通过这种指定auth服务ip访问的方式,对这些接口的保护。

上一篇:MySQL之记录相关操作


下一篇:You just run!