Добавление Spring Security Starter в мое приложение Spring Boot автоматически перенаправляет все пути на тот, который задан в совершенно другом проекте. - PullRequest
0 голосов
/ 03 января 2019

Я добавил зависимость Spring Security Starter (я использую Maven) для защиты моего приложения (после обучения); проблема в том, что когда я добавляю его, всякий раз, когда я захожу на localhost, чтобы проверить мой прогресс, меня всегда перенаправляют на путь, закодированный в другом проекте (я даже сейчас не могу найти представление).

В настоящее время я следую руководству по TutorialsPoint , но использую Spring Tools Suite 4 для добавления зависимостей, кодирования и запуска своего приложения Spring вместо CLI на localhost: 8080.

Я пытался найти рассматриваемое представление, возиться с файлом web.xml другого проекта, но не могу найти источник проблемы, все, что я знаю, это то, что Spring Security Starter каким-то образом испортил его.

Шаблон Thymeleaf

<!DOCTYPE html>
<html>
   <head>
      <meta charset = "ISO-8859-1" />
      <link href = "css/styles.css" rel = "stylesheet"/>
      <title>Spring Boot Application</title>
   </head>
   <body>
      <h4>Welcome to Thymeleaf Spring Boot web application</h4>
   </body>
</html>

Веб-контроллер

package com.example.vj7.Controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class WebController {
   @RequestMapping(value = "/index")
   public String index() {
      return "index";
   }
}

Класс применения

package com.example.vj7;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Vj7Application {
    public static void main(String[] args) {
    SpringApplication.run(Vj7Application.class, args);
    }
}

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>vj7</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>Vj7</name>
    <description>Vježba 7</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

Ожидаемый результат от "localhost: 8080" - это просто заголовок "Demo" (как в index.html и установленный в веб-контроллере), но вместо этого форма, над которой я работал ранее в другом проекте Spring, отображается с путем "/ войти в систему».

1 Ответ

0 голосов
/ 03 января 2019

Вам необходимо переопределить некоторые конфигурации по умолчанию веб-безопасности, если вы хотите, чтобы к index.html обращались без авторизации. взято из https://docs.spring.io/spring-security/site/docs/4.2.5.RELEASE/apidocs/org/springframework/security/config/annotation/web/configuration/EnableWebSecurity.html

 @Configuration
 @EnableWebSecurity
 public class MyWebSecurityConfiguration extends WebSecurityConfigurerAdapter {


        @Override
        protected void configure(HttpSecurity http) throws Exception {
                http.authorizeRequests().antMatchers("/", "/index").permitAll().anyRequest()
                                .permitAll();
        }
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...