[JAVA] Utiliser les balises JSP Spring Security avec FreeMarker

Chose que tu veux faire

Je souhaite utiliser des balises JSP telles que «<security: authorize>» sur FreeMarker. Je voudrais confirmer pour moi-même qu'il a été introduit sur https://vorba.ch/2018/spring-boot-freemarker-security-jsp-taglib.html.

Il semble que FreeMarker ait à l'origine une fonction permettant d'utiliser les balises JSP. → URL de référence

environnement

Dépendance

pom.xml


    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-freemarker</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-taglibs</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-jsp-api</artifactId>
        </dependency>
    </dependencies>

Le fait est que la balise Spring Security JSP (spring-security-taglibs) et l'API JSP ( tomcat-jsp-api) sont requises.

Classe Java Config

SecurityConfig.java


@Configuration
public class MyFreeMarkerConfig {

    private final FreeMarkerConfigurer freeMarkerConfigurer;

    public MyFreeMarkerConfig(FreeMarkerConfigurer freeMarkerConfigurer) {
        this.freeMarkerConfigurer = freeMarkerConfigurer;
    }

    @PostConstruct
    public void init() {
        freeMarkerConfigurer.getTaglibFactory().setClasspathTlds(
                Collections.singletonList("/META-INF/security.tld"));
    }
}

Le but est de spécifier le chemin du fichier TLD.

Comment écrire l'écran

index.ftlh


<#assign security=JspTaglibs["http://www.springframework.org/security/tags"]/>
<html>
<head>
    <title>Index</title>
    <meta charset="UTF-8">
</head>
<body>
<h1>Index</h1>
<@security.authorize access="isAuthenticated()">
    <p>Hello, <@security.authentication property="principal.username"/>!</p>
</@security.authorize>
<p><a href="/secret">Go to secret page</a></p>
<form action="/logout" method="post">
    <input type="submit" value="Logout">
    <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />
</form>
</body>
</html>

Spécifiez la balise JSP avec <# assign security = JspTaglibs [" http://www.springframework.org/security/tags "] />.

Lors de l'utilisation de balises, <@ security. Tag name Property name =" Property value ">.

La vue d'ensemble du code

https://github.com/MasatoshiTada/freemarker-spring-security-sample

Recommended Posts

Utiliser les balises JSP Spring Security avec FreeMarker
Fonction de connexion avec Spring Security
Utiliser Spring JDBC avec Spring Boot
Utiliser l'authentification de base avec Spring Boot
Mise en œuvre de la fonction d'authentification avec Spring Security ②
Implémentez la fonction d'authentification avec Spring Security ③
Mise en œuvre de la fonction d'authentification avec Spring Security ①
À partir de Spring Boot 0. Utilisez Spring CLI
Certification / autorisation avec Spring Security & Thymeleaf
Authentification DB avec Spring Security et hachage avec BCrypt
Comment Spring Security fonctionne avec Hello World
Utiliser le cache avec EhCashe 2.x avec Spring Boot
Obtenez une authentification BASIC avec Spring Boot + Spring Security
Hash des mots de passe avec Spring Boot + Spring Security (avec sel, avec étirement)
Comment utiliser MyBatis2 (iBatis) avec Spring Boot 1.4 (Spring 4)
Comment utiliser h2db intégré avec Spring Boot
Vous utilisez le contexte pour utiliser MDC avec Spring WebFlux
Essayez l'authentification LDAP avec Spring Security (Spring Boot) + OpenLDAP
Ajoutez vos propres éléments d'authentification avec Spring Security
[JAVA] [Spring] [MyBatis] Utiliser IN () avec SQL Builder
[Introduction à Spring Boot] Fonction d'authentification avec Spring Security
Créez un serveur Spring Cloud Config en toute sécurité avec Spring Boot 2.0
Mémo d'utilisation de Spring Security: coopération avec Spring MVC et Boot
Spring Boot avec les paramètres du filtre de sécurité Spring et les points addictifs
Implémentez une API Rest simple avec Spring Security avec Spring Boot 2.0
Gérer le mot de passe haché avec BCryptPasswordEncoder de Spring Security en Perl
Créez un site de démonstration simple avec Spring Security avec Spring Boot 2.1
Essayez de travailler avec Keycloak en utilisant Spring Security SAML (Spring 5)
Téléchargement de fichiers avec Spring Boot (ne pas utiliser de fichier en plusieurs parties)
Appelez votre propre méthode avec PreAuthorize dans Spring Security
Utiliser ProGuard avec Gradle
À propos de l'authentification Spring Security
Ressort avec actionneur Kotorin --5
Utiliser Puphpeteer avec Docker
Utilisez XVim2 avec Xcode 12.0.1
Utilisation de CentOS avec LXD
Utilisez Interceptor au printemps
Spring Security soulève 403 interdits
Utiliser Webmock avec Rspec
Validation personnalisée avec Spring
Utiliser les WebJars avec Gradle
Utilisez jlink avec gradle
Printemps avec Kotorin ―― 1. INITIALISATION PRINTEMPS
Télécharger avec Spring Boot
Utilisez thymeleaf3 avec le parent sans spécifier spring-boot-starter-parent dans Spring Boot
Implémentez une API Rest simple avec Spring Security & JWT avec Spring Boot 2.0
Connectez-vous avec HttpServletRequest # login dans Spring Security dans l'environnement Servlet 3.x