开发者社区> 问答> 正文

如果路由不存在,如何配置Spring Boot引发404错误?

所以我在控制器中有一堆嵌套的路由。如果特定的嵌套路由不存在,我想确保应用程序引发错误。现在,如果嵌套级别大于2,则应用程序返回,null而不是抛出错误,指出找不到路由。

例:

@RestController @RequestMapping(value="v1/") public class EmployeeController {

@Autowired
EmployeeRepository employeeRepository;


// Get Token Info
@RequestMapping(value = "read/tokenInfo", method =  RequestMethod.GET)
public Token getTokenInfo(@AuthenticationPrincipal Token token) {
    return token;
}


// List of all employees.
@GetMapping(path = "read/list")
public List<Employee> getAllEmployees() {
    return employeeRepository.findAll();
}

在上面的代码中,假设该路由 v1/read/tokenInfo具有3个分段-v1,read和tokenInfo。如果我输错了路线,然后尝试类似的操作- v1/read/tokeninfosss而不显示错误,它将返回200OK并null显示消息。

响应: 响应

但是,如果该路线只有2个级别-如下所示-

@RestController @RequestMapping(value="v1/") public class EmployeeController {

@Autowired
EmployeeRepository employeeRepository;

// Get Token Info
@RequestMapping(value = "tokenInfo", method =  RequestMethod.GET)
public Token getTokenInfo(@AuthenticationPrincipal Token token) {
    return token;
}

现在,如果我致电- v1/tokenInfosss,则会引发错误 -404错误: 404错误

我还配置了以下安全性-

@Override protected void configure(HttpSecurity http) throws Exception { http.sessionManagement() .sessionCreationPolicy(SessionCreationPolicy.STATELESS) .and() .authorizeRequests()
.antMatchers("/local/").permitAll() .antMatchers("/v1/read/").hasAuthority("Display") .antMatchers("/v1/modify/**").hasAuthority("Update") .anyRequest().authenticated() .and() .oauth2ResourceServer() .jwt() .jwtAuthenticationConverter(getJwtAuthenticationConverter()); } 任何想法如何配置此404错误?

展开
收起
被纵养的懒猫 2019-10-08 17:20:00 660 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载