Java 限制对除几个URI之外的所有URI的访问,Spring security
我想限制对除几个URI之外的所有URI的访问 以下URI可以自由访问:Java 限制对除几个URI之外的所有URI的访问,Spring security,java,spring,spring-mvc,spring-security,Java,Spring,Spring Mvc,Spring Security,我想限制对除几个URI之外的所有URI的访问 以下URI可以自由访问:“/”、“/login”、“/register” 通过传递经过身份验证的过程,可以访问任何其他对象 以下代码必须限制对所有URI的访问,除了“/”、“/login”、“/register”(我在StackOverflow上找到了它): 问题是,当我生成get请求时(即单击以下链接),将显示登录页面。但是,它应该只显示注册JSP页面 我做错了什么?我如何才能正确地限制对除几个URI之外的所有URI的访问 来自我的身份验证控制器的
“/”、“/login”、“/register”
通过传递经过身份验证的过程,可以访问任何其他对象
以下代码必须限制对所有URI的访问,除了“/”、“/login”、“/register”
(我在StackOverflow上找到了它):
问题是,当我生成get请求时(即单击以下链接
),将显示登录页面。但是,它应该只显示注册JSP页面
我做错了什么?我如何才能正确地限制对除几个URI之外的所有URI的访问
来自我的身份验证控制器的部分:
@RequestMapping(value = "/register", method = RequestMethod.GET)
public String displayRegistrationForm(Model model) {
model.addAttribute("user", new Customer());
return "register";
}
@RequestMapping(value = "/register", method = RequestMethod.POST)
public String processUserRegistration(@Valid @ModelAttribute("user") Customer customer,
BindingResult result,
Model model) {
if (result.hasErrors()) {
return "register";
}
if (customerRepository.checkIfEmailExistsInDatabase(customer.getEmail())) {
result.rejectValue("email", "email_exist", "Email is in DB");
return "register";
}
if (customerRepository.checkIfLoginExistsInDb(customer)) {
result.rejectValue("login", "login_exists", "Login is in DB");
return "register";
}
customer.setPassword(bCryptPasswordEncoder.encode(customer.getPassword()));
customerRepository.insert(customer);
model.addAttribute("user", customer);
if (customer.getCustomerType().getTypeName().equals("BUSINESS")) {
model.addAttribute("gasstation", new GasStation());
return "redirect:add_gasstation";
} else {
model.addAttribute("vehicle", new Vehicle());
return "redirect:add_vehicle";
}
}
我只是想知道是否正在读取您的配置。您能确认在定义
configure
方法的类上有@Configuration
注释吗?您是指定义spring安全上下文的类上的@Configuration吗?如果是,那么我就有了。似乎是上下文问题。你能试试这个吗。配置看起来很好,这就是我问的原因。另一件事是在配置的末尾调用和()。我看不出有什么原因。@M4ver1k,我尝试过你的方法-没有结果。我只是想知道你的配置是否正在被读取。您能确认在定义configure
方法的类上有@Configuration
注释吗?您是指定义spring安全上下文的类上的@Configuration吗?如果是,那么我就有了。似乎是上下文问题。你能试试这个吗。配置看起来很好,这就是我问的原因。另一件事是在配置的末尾调用和()。我看不出有什么原因。@M4ver1k,我尝试过你的方法-没有结果。
@RequestMapping(value = "/register", method = RequestMethod.GET)
public String displayRegistrationForm(Model model) {
model.addAttribute("user", new Customer());
return "register";
}
@RequestMapping(value = "/register", method = RequestMethod.POST)
public String processUserRegistration(@Valid @ModelAttribute("user") Customer customer,
BindingResult result,
Model model) {
if (result.hasErrors()) {
return "register";
}
if (customerRepository.checkIfEmailExistsInDatabase(customer.getEmail())) {
result.rejectValue("email", "email_exist", "Email is in DB");
return "register";
}
if (customerRepository.checkIfLoginExistsInDb(customer)) {
result.rejectValue("login", "login_exists", "Login is in DB");
return "register";
}
customer.setPassword(bCryptPasswordEncoder.encode(customer.getPassword()));
customerRepository.insert(customer);
model.addAttribute("user", customer);
if (customer.getCustomerType().getTypeName().equals("BUSINESS")) {
model.addAttribute("gasstation", new GasStation());
return "redirect:add_gasstation";
} else {
model.addAttribute("vehicle", new Vehicle());
return "redirect:add_vehicle";
}
}