|
@@ -0,0 +1,103 @@
|
|
|
|
+package com.diagbot;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+import de.codecentric.boot.admin.server.config.AdminServerProperties;
|
|
|
|
+import de.codecentric.boot.admin.server.config.EnableAdminServer;
|
|
|
|
+import org.springframework.boot.SpringApplication;
|
|
|
|
+import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
|
|
|
+import org.springframework.boot.autoconfigure.SpringBootApplication;
|
|
|
|
+import org.springframework.cloud.netflix.hystrix.EnableHystrix;
|
|
|
|
+import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;
|
|
|
|
+import org.springframework.cloud.netflix.turbine.EnableTurbine;
|
|
|
|
+import org.springframework.context.annotation.Configuration;
|
|
|
|
+import org.springframework.context.annotation.Profile;
|
|
|
|
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
|
|
|
|
+import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
|
|
|
|
+import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * @Description: 系统管理中心启动文件
|
|
|
|
+ * @author: gaodm
|
|
|
|
+ * @time: 2018/8/7 10:48
|
|
|
|
+ */
|
|
|
|
+@SpringBootApplication
|
|
|
|
+@EnableTurbine
|
|
|
|
+@EnableHystrixDashboard
|
|
|
|
+@EnableHystrix
|
|
|
|
+@EnableAdminServer
|
|
|
|
+@Configuration
|
|
|
|
+@EnableAutoConfiguration
|
|
|
|
+public class AdminServiceApplication {
|
|
|
|
+
|
|
|
|
+ public static void main(String[] args) {
|
|
|
|
+ SpringApplication.run(AdminServiceApplication.class, args);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+// // tag::configuration-spring-security[]
|
|
|
|
+// @Configuration
|
|
|
|
+// public static class SecurityConfig extends WebSecurityConfigurerAdapter {
|
|
|
|
+// @Override
|
|
|
|
+// protected void configure(HttpSecurity http) throws Exception {
|
|
|
|
+// // Page with login form is served as /login.html and does a POST on /login
|
|
|
|
+// http.formLogin().loginPage("/login.html").loginProcessingUrl("/login").permitAll();
|
|
|
|
+// // The UI does a POST on /logout on logout
|
|
|
|
+// http.logout().logoutUrl("/logout");
|
|
|
|
+// // The ui currently doesn't support csrf
|
|
|
|
+// http.csrf().disable();
|
|
|
|
+//
|
|
|
|
+// // Requests for the login page and the static assets are allowed
|
|
|
|
+// http.authorizeRequests()
|
|
|
|
+// .antMatchers("/login.html", "/**/*.css", "/img/**", "/third-party/**")
|
|
|
|
+// .permitAll();
|
|
|
|
+// // ... and any other request needs to be authorized
|
|
|
|
+// http.authorizeRequests().antMatchers("/**").authenticated();
|
|
|
|
+//
|
|
|
|
+// // Enable so that the clients can authenticate via HTTP basic for registering
|
|
|
|
+// http.httpBasic();
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// @Autowired
|
|
|
|
+// public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
|
|
|
|
+// auth
|
|
|
|
+// .inMemoryAuthentication()
|
|
|
|
+// .withUser("admin").password("123456").roles("USER");
|
|
|
|
+// }
|
|
|
|
+
|
|
|
|
+ @Profile("dev")
|
|
|
|
+ @Configuration
|
|
|
|
+ public static class SecurityPermitAllConfig extends WebSecurityConfigurerAdapter {
|
|
|
|
+ @Override
|
|
|
|
+ protected void configure(HttpSecurity http) throws Exception {
|
|
|
|
+ http.authorizeRequests().anyRequest().permitAll()
|
|
|
|
+ .and().csrf().disable();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Profile("pro")
|
|
|
|
+ @Configuration
|
|
|
|
+ public static class SecuritySecureConfig extends WebSecurityConfigurerAdapter {
|
|
|
|
+ private final String adminContextPath;
|
|
|
|
+
|
|
|
|
+ public SecuritySecureConfig(AdminServerProperties adminServerProperties) {
|
|
|
|
+ this.adminContextPath = adminServerProperties.getContextPath();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ protected void configure(HttpSecurity http) throws Exception {
|
|
|
|
+ SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();
|
|
|
|
+ successHandler.setTargetUrlParameter("redirectTo");
|
|
|
|
+
|
|
|
|
+ http.authorizeRequests()
|
|
|
|
+ .antMatchers(adminContextPath + "/assets/**").permitAll()
|
|
|
|
+ .antMatchers(adminContextPath + "/login").permitAll()
|
|
|
|
+ .anyRequest().authenticated()
|
|
|
|
+ .and()
|
|
|
|
+ .formLogin().loginPage(adminContextPath + "/login").successHandler(successHandler).and()
|
|
|
|
+ .logout().logoutUrl(adminContextPath + "/logout").and()
|
|
|
|
+ .httpBasic().and()
|
|
|
|
+ .csrf().disable();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|