Vista de login

This commit is contained in:
David 2021-03-25 20:15:34 +01:00
parent bb86bbc6ba
commit fbd5813f86
11 changed files with 32 additions and 26 deletions

View file

@ -135,7 +135,10 @@
<artifactId>spring-boot-devtools</artifactId> <artifactId>spring-boot-devtools</artifactId>
<optional>true</optional> <optional>true</optional>
</dependency> </dependency>
</dependencies> </dependencies>
<build> <build>
<plugins> <plugins>

View file

@ -36,15 +36,15 @@ public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
.antMatchers(HttpMethod.GET, "/", "/oups").permitAll() .antMatchers(HttpMethod.GET, "/", "/oups").permitAll()
.antMatchers("/users/new").permitAll() .antMatchers("/users/new").permitAll()
.antMatchers("/login/**").anonymous() .antMatchers("/login/**").anonymous()
.antMatchers("/logout").permitAll()
.antMatchers("/usuarios/new").permitAll() .antMatchers("/usuarios/new").permitAll()
.antMatchers("/admin/**").hasAnyAuthority("admin") .antMatchers("/admin/**").hasAnyAuthority("admin")
.antMatchers("/owners/**").hasAnyAuthority("owner", "admin") .antMatchers("/owners/**").hasAnyAuthority("owner", "admin")
.antMatchers("/vets/**").authenticated().anyRequest().anonymous() .antMatchers("/vets/**").authenticated().anyRequest().anonymous()
.and().formLogin() .and().formLogin()
.loginPage("/login") .loginPage("/login").permitAll()
.successForwardUrl("/") .failureUrl("/login?error")
.failureUrl("/login?error") .and().logout().logoutSuccessUrl("/login");
.and().logout().logoutUrl("/login?logout");
// Configuración para que funcione la consola de administración // Configuración para que funcione la consola de administración
// de la BD H2 (deshabilitar las cabeceras de protección contra // de la BD H2 (deshabilitar las cabeceras de protección contra

View file

@ -16,6 +16,9 @@
package org.springframework.cheapy.system; package org.springframework.cheapy.system;
import org.springframework.security.authentication.AnonymousAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
@ -24,7 +27,11 @@ class LoginController {
@GetMapping("/login") @GetMapping("/login")
public String login() { public String login() {
return "login"; Authentication authentication= SecurityContextHolder.getContext().getAuthentication();
if(authentication==null || authentication instanceof AnonymousAuthenticationToken) {
return "login";
}
return "redirect:/";
} }

View file

@ -4,9 +4,9 @@
<%@ taglib prefix="cheapy" tagdir="/WEB-INF/tags" %> <%@ taglib prefix="cheapy" tagdir="/WEB-INF/tags" %>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %> <%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
<link href='https://fonts.googleapis.com/css?family=Lobster' rel='stylesheet'> <link href='https://fonts.googleapis.com/css?family=Lobster' rel='stylesheet'>
<script src="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script> <script src="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<!-- %@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %--> <!-- %@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %-->
<style> <style>
@ -280,13 +280,15 @@
<div class="fadeIn first"> <div class="fadeIn first">
<img src="/resources/images/Logo Cheapy.png" id="icon" /> <img src="/resources/images/Logo Cheapy.png" id="icon" />
</div> </div>
<div th:if="${param.error}">
<p class="text-danger"> Invalid username or password</p>
</div>
<!-- Login Form --> <!-- Login Form -->
<form class='form-signin' action="/login" method='POST'> <form class='form-signin' action="/login" method='POST'>
<input type="text" id="login" class="fadeIn second" name="login" placeholder="login"> <input type="text" id="username" class="fadeIn second" name="username" placeholder="username" required autofocus>
<input type="password" id="password" class="fadeIn third" name="login" placeholder="password"> <input type="password" id="password" class="fadeIn third" name="password" placeholder="password" required>
<sec:csrfInput /> <sec:csrfInput />
<input type="submit" class="fadeIn fourth" value="Log In"> <input type="submit" class="fadeIn fourth" value="Login">
</form> </form>
<!-- Remind Passowrd --> <!-- Remind Passowrd -->

View file

@ -2,10 +2,9 @@
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="cheapy" tagdir="/WEB-INF/tags" %> <%@ taglib prefix="cheapy" tagdir="/WEB-INF/tags" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<cheapy:layout pageName="owners"> <cheapy:layout pageName="owners">
<h2> <h2>
<c:if test="${owner['new']}">New </c:if> Owner <c:if test="${owner['new']}">New </c:if> Owner

View file

@ -2,12 +2,11 @@
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="cheapy" tagdir="/WEB-INF/tags" %> <%@ taglib prefix="cheapy" tagdir="/WEB-INF/tags" %>
<%@ taglib prefix="sec" <%@ taglib prefix="sec"
uri="http://www.springframework.org/security/tags"%> uri="http://www.springframework.org/security/tags"%>
<!-- >%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags"%--> <!-- >%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags"%-->
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<cheapy:layout pageName="owners"> <cheapy:layout pageName="owners">
<h2>Find Owners</h2> <h2>Find Owners</h2>

View file

@ -1,9 +1,8 @@
<%@ page session="false" trimDirectiveWhitespaces="true" %> <%@ page session="false" trimDirectiveWhitespaces="true" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="cheapy" tagdir="/WEB-INF/tags" %> <%@ taglib prefix="cheapy" tagdir="/WEB-INF/tags" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<cheapy:layout pageName="owners"> <cheapy:layout pageName="owners">
<h2>Owner Information</h2> <h2>Owner Information</h2>

View file

@ -2,9 +2,8 @@
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="cheapy" tagdir="/WEB-INF/tags" %> <%@ taglib prefix="cheapy" tagdir="/WEB-INF/tags" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<cheapy:layout pageName="owners"> <cheapy:layout pageName="owners">
<h2>Owners</h2> <h2>Owners</h2>

View file

@ -2,10 +2,9 @@
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="cheapy" tagdir="/WEB-INF/tags" %> <%@ taglib prefix="cheapy" tagdir="/WEB-INF/tags" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<cheapy:layout pageName="owners"> <cheapy:layout pageName="owners">
<h2> <h2>
<c:if test="${owner['new']}">New </c:if> Owner <c:if test="${owner['new']}">New </c:if> Owner

View file

@ -69,10 +69,10 @@
<p class="text-left"> <p class="text-left">
<strong><sec:authentication property="name" /></strong> <strong><sec:authentication property="name" /></strong>
</p> </p>
<p class="text-left"> <form action="/logout" method=post>
<a href="<c:url value="/logout" />" <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>
class="btn btn-primary btn-block btn-sm">Logout</a> <input type="submit" value="logout">
</p> </form>
</div> </div>
</div> </div>
</div> </div>

View file

@ -1,9 +1,8 @@
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ attribute name="active" required="true" rtexprvalue="true" %> <%@ attribute name="active" required="true" rtexprvalue="true" %>
<%@ attribute name="url" required="true" rtexprvalue="true" %> <%@ attribute name="url" required="true" rtexprvalue="true" %>
<%@ attribute name="title" required="false" rtexprvalue="true" %> <%@ attribute name="title" required="false" rtexprvalue="true" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<li class="${active ? 'active' : ''}"> <li class="${active ? 'active' : ''}">
<a href="<spring:url value="${url}" htmlEscape="true" />" <a href="<spring:url value="${url}" htmlEscape="true" />"