我没有使用 Spring Security,但它要求我进行身份验证。

URL 异常(http://localhost:8080/SpringJob/ExecuteJob):

{ 
    "timestamp": 1500622875056, 
    "status": 401, 
    "error": "Unauthorized", 
    "message": "Bad credentials", 
    "path": "/SPPA/ExecuteSPPAJob" 
} 
----below log details 
2017-07-21 13:15:35.210  INFO 19828 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/SpringJob]   : Initializing Spring FrameworkServlet 'dispatcherServlet' 
2017-07-21 13:15:35.210 [http-nio-8080-exec-1] INFO  
                    o.a.c.c.C.[.[localhost].[/SpringJob]-Initializing Spring FrameworkServlet 'dispatcherServlet'  
2017-07-21 13:15:35.211  INFO 19828 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization started 
2017-07-21 13:15:35.211 [http-nio-8080-exec-1] INFO  
                    o.s.web.servlet.DispatcherServlet-FrameworkServlet 'dispatcherServlet': initialization started  
2017-07-21 13:15:35.494  INFO 19828 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet        : FrameworkServlet 'dispatcherServlet': initialization completed in 282 ms 
2017-07-21 13:15:35.494 [http-nio-8080-exec-1] INFO  
                    o.s.web.servlet.DispatcherServlet-FrameworkServlet 'dispatcherServlet': initialization completed in 282 ms  

应用程序-dev.xml

#Spring Boot based configurations 
management.security.enabled: "false" 
spring.autoconfigure.exclude:  "org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration" 
spring.batch.job.enabled: false 
server.contextPath: /SpringJob 

build.gradle 片段

plugins { 
    id 'jacoco' 
    id 'org.sonarqube' version '2.5' 
} 
 
apply plugin: 'java' 
apply plugin: 'eclipse' 
apply plugin: 'idea' 
apply plugin: 'org.springframework.boot' 
apply plugin: "no.nils.wsdl2java" 
apply plugin: 'jacoco' 
apply plugin: "org.sonarqube" 
dependencies { 
    compile("org.springframework.boot:spring-boot-starter-web") 
    compile("org.springframework.boot:spring-boot-starter-batch") 
    compile("org.springframework.boot:spring-boot-starter-mail") 
    //compile("org.springframework.boot:spring-boot-devtools") 
    compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.5' 
    compile group: 'org.apache.cxf', name: 'cxf-spring-boot-starter-jaxws', version: '3.1.10' 
    compile group: 'org.apache.cxf', name: 'cxf-rt-ws-security', version: '3.1.10' 
    compile("org.springframework.boot:spring-boot-starter-actuator") 
    testCompile('org.springframework.boot:spring-boot-starter-test') 
} 

Controller

@Controller 
@EnableAutoConfiguration 
@EnableBatchProcessing 
public class MyController { 
    @Autowired 
    JobLauncher jobLauncher; 
 
    @RequestMapping("/ExecuteJob") 
    @ResponseBody 
    public String callPrelegalJob(@RequestParam("user") String userName, @RequestParam("password") String password) { 
        log.info("Job is to be launched from controller..."); 
} 
} 

请您参考如下方法:

在当前版本的 Spring Boot (v2.1.0.RELEASE) 中,摆脱安全问题的最简单方法是将“WebSecurityConfig.java”添加到您的项目中,如下所示:

import org.springframework.context.annotation.Configuration; 
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.WebSecurityConfigurerAdapter; 
 
@EnableWebSecurity 
@Configuration 
public class WebSecurityConfig extends WebSecurityConfigurerAdapter { 
 
    @Override 
    protected void configure(HttpSecurity http) throws Exception { 
        http.csrf().disable(); 
    } 
 
} 

当然请注意,这取消了对跨站点请求伪造的保护,因此这实际上只适用于简单的只读端点。


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!