Modify formatting.

This commit is contained in:
tschiman 2016-10-24 20:40:06 -06:00
parent 66b618d99d
commit bad9a35061
6 changed files with 76 additions and 130 deletions

View File

@ -7,7 +7,7 @@ import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@SpringBootApplication @SpringBootApplication
@EnableEurekaServer @EnableEurekaServer
public class DiscoveryApplication { public class DiscoveryApplication {
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(DiscoveryApplication.class, args); SpringApplication.run(DiscoveryApplication.class, args);
} }
} }

View File

@ -15,52 +15,30 @@ import org.springframework.security.config.http.SessionCreationPolicy;
@Order(1) @Order(1)
public class SecurityConfig extends WebSecurityConfigurerAdapter { public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired @Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception{ public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication().withUser("discUser").password("discPassword").roles("SYSTEM"); auth.inMemoryAuthentication().withUser("discUser").password("discPassword").roles("SYSTEM");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.sessionManagement()
.sessionCreationPolicy(SessionCreationPolicy.ALWAYS)
.and()
.requestMatchers()
.antMatchers("/eureka/**")
.and()
.authorizeRequests()
.antMatchers("/eureka/**").hasRole("SYSTEM")
.anyRequest().denyAll()
.and()
.httpBasic()
.and()
.csrf()
.disable();
}
@Configuration
//no order tag means this is the last security filter to be evaluated
public static class AdminSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication();
} }
@Override protected void configure(HttpSecurity http) throws Exception { @Override
http protected void configure(HttpSecurity http) throws Exception {
.sessionManagement() http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.ALWAYS).and().requestMatchers().antMatchers("/eureka/**").and().authorizeRequests().antMatchers("/eureka/**").hasRole("SYSTEM").anyRequest().denyAll().and().httpBasic().and()
.sessionCreationPolicy(SessionCreationPolicy.NEVER) .csrf().disable();
.and() }
.httpBasic()
.disable() @Configuration
.authorizeRequests() //no order tag means this is the last security filter to be evaluated
.antMatchers(HttpMethod.GET, "/").hasRole("ADMIN") public static class AdminSecurityConfig extends WebSecurityConfigurerAdapter {
.antMatchers("/info","/health").authenticated()
.anyRequest().denyAll() @Autowired
.and() public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
.csrf() auth.inMemoryAuthentication();
.disable(); }
@Override
protected void configure(HttpSecurity http) throws Exception {
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.NEVER).and().httpBasic().disable().authorizeRequests().antMatchers(HttpMethod.GET, "/").hasRole("ADMIN").antMatchers("/info", "/health").authenticated().anyRequest()
.denyAll().and().csrf().disable();
}
} }
}
} }

View File

@ -18,23 +18,23 @@ import java.util.List;
@EnableZuulProxy @EnableZuulProxy
@EnableEurekaClient @EnableEurekaClient
public class GatewayApplication { public class GatewayApplication {
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(GatewayApplication.class, args); SpringApplication.run(GatewayApplication.class, args);
} }
@Autowired(required = false) @Autowired(required = false)
private List<RibbonClientSpecification> configurations = new ArrayList<>(); private List<RibbonClientSpecification> configurations = new ArrayList<>();
@Bean @Bean
@LoadBalanced RestTemplate restTemplate(){ @LoadBalanced
return new RestTemplate(); RestTemplate restTemplate() {
} return new RestTemplate();
}
@Bean
@Bean public SpringClientFactory springClientFactory() {
public SpringClientFactory springClientFactory() { SpringClientFactory factory = new SpringClientFactory();
SpringClientFactory factory = new SpringClientFactory(); factory.setConfigurations(this.configurations);
factory.setConfigurations(this.configurations); return factory;
return factory; }
}
} }

View File

@ -11,28 +11,14 @@ import org.springframework.security.config.annotation.web.configuration.WebSecur
@Configuration @Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter { public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired @Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication() auth.inMemoryAuthentication().withUser("user").password("password").roles("USER").and().withUser("admin").password("admin").roles("ADMIN");
.withUser("user").password("password").roles("USER") }
.and()
.withUser("admin").password("admin").roles("ADMIN");
}
@Override @Override
protected void configure(HttpSecurity http) throws Exception { protected void configure(HttpSecurity http) throws Exception {
http http.authorizeRequests().antMatchers("/resource/hello/cloud").permitAll().antMatchers("/eureka/**").hasRole("ADMIN").anyRequest().authenticated().and().formLogin().and().logout().permitAll().logoutSuccessUrl("/resource/hello/cloud").permitAll()
.authorizeRequests() .and().csrf().disable();
.antMatchers("/resource/hello/cloud").permitAll() }
.antMatchers("/eureka/**").hasRole("ADMIN")
.anyRequest().authenticated()
.and()
.formLogin()
.and()
.logout().permitAll()
.logoutSuccessUrl("/resource/hello/cloud").permitAll()
.and()
.csrf()
.disable();
}
} }

View File

@ -11,31 +11,31 @@ import org.springframework.web.bind.annotation.RestController;
@EnableEurekaClient @EnableEurekaClient
@RestController @RestController
public class ResourceApplication { public class ResourceApplication {
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(ResourceApplication.class, args); SpringApplication.run(ResourceApplication.class, args);
} }
@Value("${resource.returnString}") @Value("${resource.returnString}")
private String returnString; private String returnString;
@Value("${resource.user.returnString}") @Value("${resource.user.returnString}")
private String userReturnString; private String userReturnString;
@Value("${resource.admin.returnString}") @Value("${resource.admin.returnString}")
private String adminReturnString; private String adminReturnString;
@RequestMapping("/hello/cloud") @RequestMapping("/hello/cloud")
public String getString() { public String getString() {
return returnString; return returnString;
} }
@RequestMapping("/hello/user") @RequestMapping("/hello/user")
public String getUserString() { public String getUserString() {
return userReturnString; return userReturnString;
} }
@RequestMapping("/hello/admin") @RequestMapping("/hello/admin")
public String getAdminString() { public String getAdminString() {
return adminReturnString; return adminReturnString;
} }
} }

View File

@ -1,8 +1,6 @@
package com.baeldung.spring.cloud.bootstrap.resource; package com.baeldung.spring.cloud.bootstrap.resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
@ -11,24 +9,8 @@ import org.springframework.security.config.annotation.web.configuration.WebSecur
@Configuration @Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter { public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired @Override
public void configureGlobal1(AuthenticationManagerBuilder auth) throws Exception { protected void configure(HttpSecurity http) throws Exception {
//try in memory auth with no users to support the case that this will allow for users that are logged in to go anywhere http.httpBasic().disable().authorizeRequests().antMatchers("/hello/cloud").permitAll().antMatchers("/hello/user").hasAnyRole("USER", "ADMIN").antMatchers("/hello/admin").hasRole("ADMIN").anyRequest().authenticated().and().csrf().disable();
auth.inMemoryAuthentication(); }
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.httpBasic()
.disable()
.authorizeRequests()
.antMatchers("/hello/cloud").permitAll()
.antMatchers("/hello/user").hasAnyRole("USER", "ADMIN")
.antMatchers("/hello/admin").hasRole("ADMIN")
.anyRequest().authenticated()
.and()
.csrf()
.disable();
}
} }