Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 限制对除几个URI之外的所有URI的访问,Spring security_Java_Spring_Spring Mvc_Spring Security - Fatal编程技术网

Java 限制对除几个URI之外的所有URI的访问,Spring security

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的访问 来自我的身份验证控制器的

我想限制对除几个URI之外的所有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";
        }
    }