我使用spring-boot
,我有一个@Controller
。为安全起见,我只想接受127.0.0.1
的请求(@RequestMapping
)。我怎么能这样做?
答案 0 :(得分:4)
由于您使用的是spring-boot,我假设您更喜欢使用Spring的自动配置类。使用WebSecurityConfigurerAdapter并在那里配置访问规则。
@EnableWebSecurity
@Configuration
public class CustomWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeUrls()
.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/**").access("hasIpAddress('127.0.0.1/24')")
.anyRequest().authenticated();
}
}
如果您使用 tomcat ,则可以在application.properties上自定义Tomcat的代理配置。参考here。
server.tomcat.internal-proxies=192\\.168\\.\\d{1,3}\\.\\d{1,3}
答案 1 :(得分:3)
你可以这样做是使用Spring Security的Web Security Expressions。例如:
<http use-expressions="true">
<intercept-url pattern="/admin*"
access="hasIpAddress('127.0.0.1/24')"/>
...
</http>