Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Spring Boot project shows the Login page

I created a Spring boot project with the Spring initializer and only have the starter code so far.

The sample code

@SpringBootApplication public class EcommerceApplication {      public static void main(String[] args) {         SpringApplication.run(EcommerceApplication.class, args);     } }   @Controller @RequestMapping(value = "/") public class HomeController {      @GetMapping     public String index() {         return "index";     } } 

I expect it to return the index.html page from the templates folder. Instead, I'm redirected to the http://localhost:8080/login address and asked for the username/ password. In the application.properties file, I tried to use the configuration of,

server.port=8080 spring.application.name=Bootstrap Spring Boot spring.thymeleaf.cache=false spring.thymeleaf.enabled=true  spring.thymeleaf.prefix=classpath:/templates/ spring.thymeleaf.suffix=.html spring.datasource.driver-class-name=org.h2.Driver spring.datasource.url=jdbc:h2:mem:bootapp;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE spring.datasource.username=testuser spring.datasource.password=testpassword server.error.path=/error server.error.whitelabel.enabled=false  

I tried to login with the username testuser and the password testpassword. This doesn't work out.

I use the following pom.xml in the project,

<?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>      <groupId>com.online.books</groupId>     <artifactId>Ecommerce</artifactId>     <version>0.0.1-SNAPSHOT</version>     <packaging>jar</packaging>      <name>Ecommerce</name>     <description>Spring Boot Project</description>      <parent>         <groupId>org.springframework.boot</groupId>         <artifactId>spring-boot-starter-parent</artifactId>         <version>2.0.0.BUILD-SNAPSHOT</version>         <relativePath/> <!-- lookup parent from repository -->     </parent>      <properties>         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>         <java.version>1.8</java.version>     </properties>       <dependencies>         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-cache</artifactId>         </dependency>         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-data-rest</artifactId>         </dependency>         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-hateoas</artifactId>         </dependency>         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-jersey</artifactId>         </dependency>         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-security</artifactId>         </dependency>         <dependency>             <groupId>org.springframework.session</groupId>             <artifactId>spring-session-core</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-validation</artifactId>         </dependency>         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-web</artifactId>         </dependency>         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-web-services</artifactId>         </dependency>         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-websocket</artifactId>         </dependency>          <!--<dependency>-->         <!--<groupId>com.h2database</groupId>-->         <!--<artifactId>h2</artifactId>-->         <!--<scope>runtime</scope>-->         <!--</dependency>-->         <dependency>             <groupId>mysql</groupId>             <artifactId>mysql-connector-java</artifactId>             <scope>runtime</scope>         </dependency>         <dependency>             <groupId>org.springframework.boot</groupId>             <artifactId>spring-boot-starter-test</artifactId>             <scope>test</scope>         </dependency>         <dependency>             <groupId>org.springframework.restdocs</groupId>             <artifactId>spring-restdocs-mockmvc</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>      <repositories>         <repository>             <id>spring-snapshots</id>             <name>Spring Snapshots</name>             <url>https://repo.spring.io/snapshot</url>             <snapshots>                 <enabled>true</enabled>             </snapshots>         </repository>         <repository>             <id>spring-milestones</id>             <name>Spring Milestones</name>             <url>https://repo.spring.io/milestone</url>             <snapshots>                 <enabled>false</enabled>             </snapshots>         </repository>     </repositories>      <pluginRepositories>         <pluginRepository>             <id>spring-snapshots</id>             <name>Spring Snapshots</name>             <url>https://repo.spring.io/snapshot</url>             <snapshots>                 <enabled>true</enabled>             </snapshots>         </pluginRepository>         <pluginRepository>             <id>spring-milestones</id>             <name>Spring Milestones</name>             <url>https://repo.spring.io/milestone</url>             <snapshots>                 <enabled>false</enabled>             </snapshots>         </pluginRepository>     </pluginRepositories> </project> 

Whats the issue here?

like image 288
Heisenberg Avatar asked Sep 17 '17 15:09

Heisenberg


People also ask

Which is the default login file in Spring boot?

By default, Spring Boot will only log to the console and will not write log files. If you want to write log files in addition to the console output you need to set a logging. file or logging. path property (for example in your application.

Does Spring Security use default login form?

Spring security secures all HTTP endpoints by default. A user has to login in a default HTTP form. To enable Spring Boot security, we add spring-boot-starter-security to the dependencies.


2 Answers

If you don't want login page (from Spring-Security) remove the following dependency from your pom.xml

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

Or if you want to use the Spring-Security then on console it will display the default password like below :

Using default security password: ce6c3d39-8f20-4a41-8e01-803166bb99b6 

the default username will be user

like image 64
Mehraj Malik Avatar answered Sep 30 '22 20:09

Mehraj Malik


That is the default behavior. to change this, you have a few options:

You can remove the Spring Boot Security dependency:

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

You can desable autoconfiguration. To do so; in your main class, to: @SpringBootApplication append: (exclude = { SecurityAutoConfiguration.class }) so that it looks like:

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

you can also do this from the application.properties file

For more information on desableing Auto-Configuration and setting up your own. Reference: Spring Boot Security Auto-Configuration

like image 27
Guilder Avatar answered Sep 30 '22 21:09

Guilder