[JAVA] Verwenden Sie Spring Security JSP-Tags mit FreeMarker

Was du machen willst

Ich möchte JSP-Tags wie "<security: authorize>" auf FreeMarker verwenden. Ich möchte selbst bestätigen, dass es unter https://vorba.ch/2018/spring-boot-freemarker-security-jsp-taglib.html eingeführt wurde.

Es scheint, dass FreeMarker ursprünglich eine Funktion zur Verwendung von JSP-Tags hat. → Referenz-URL

Umgebung

Abhängigkeit

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>

Der Punkt ist, dass das Spring Security JSP-Tag (spring-security-taglibs) und die JSP-API ( tomcat-jsp-api) erforderlich sind.

Java-Konfigurationsklasse

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"));
    }
}

Der Punkt ist, den Pfad der TLD-Datei anzugeben.

Wie schreibe ich den Bildschirm

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>

Geben Sie das JSP-Tag mit "<# assign security = JspTaglibs [" http://www.springframework.org/security/tags "] />" an.

Bei Verwendung von Tags <@ security. Tag name Property name =" Property value ">.

Das große Bild des Codes

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

Recommended Posts

Verwenden Sie Spring Security JSP-Tags mit FreeMarker
Anmeldefunktion mit Spring Security
Verwenden Sie Spring JDBC mit Spring Boot
Verwenden Sie die Standardauthentifizierung mit Spring Boot
Implementierte Authentifizierungsfunktion mit Spring Security ②
Implementierte Authentifizierungsfunktion mit Spring Security ③
Implementierte Authentifizierungsfunktion mit Spring Security ①
Beginnend mit Spring Boot 0. Verwenden Sie Spring CLI
Zertifizierung / Autorisierung mit Spring Security & Thymeleaf
DB-Authentifizierung mit Spring Security und Hashing mit BCrypt
Wie Spring Security mit Hello World funktioniert
Verwenden Sie den Cache mit EhCashe 2.x mit Spring Boot
Erreichen Sie die BASIC-Authentifizierung mit Spring Boot + Spring Security
Hash-Passwörter mit Spring Boot + Spring Security (mit Salt, mit Stretching)
Verwendung von MyBatis2 (iBatis) mit Spring Boot 1.4 (Spring 4)
Verwendung des eingebauten h2db mit Federstiefel
Sie verwenden den Kontext, um MDC mit Spring WebFlux zu verwenden
Versuchen Sie die LDAP-Authentifizierung mit Spring Security (Spring Boot) + OpenLDAP
Fügen Sie mit Spring Security Ihre eigenen Authentifizierungselemente hinzu
[JAVA] [Spring] [MyBatis] Verwenden Sie IN () mit SQL Builder
[Einführung in Spring Boot] Authentifizierungsfunktion mit Spring Security
Erstellen Sie mit Spring Boot 2.0 einen Spring Cloud Config Server mit Sicherheit
Verwendungshinweis zu Spring Security: Zusammenarbeit mit Spring MVC und Boot
Spring Boot mit Spring Security Filter-Einstellungen und Suchtpunkten
Implementieren Sie eine einfache Rest-API mit Spring Security mit Spring Boot 2.0
Behandeln Sie das gehashte Passwort mit BCryptPasswordEncoder von Spring Security in Perl
Erstellen Sie mit Spring Security 2.1 eine einfache Demo-Site mit Spring Security
Versuchen Sie, mit Keycloak mit Spring Security SAML (Spring 5) zu arbeiten.
Datei-Upload mit Spring Boot (keine mehrteilige Datei verwenden)
Rufen Sie Ihre eigene Methode mit PreAuthorize in Spring Security auf
Verwenden Sie ProGuard mit Gradle
Informationen zur Spring Security-Authentifizierung
Feder mit Kotorin --5 Aktuator
Verwenden Sie Puphpeteer mit Docker
Verwenden Sie XVim2 mit Xcode 12.0.1
Verwenden von CentOS mit LXD
Verwenden Sie Interceptor im Frühjahr
Spring Security erhöht 403 verboten
Verwenden Sie Webmock mit Rspec
Selbstgemachte Validierung mit Spring
Verwenden Sie WebJars mit Gradle
Verwenden Sie jlink mit gradle
Frühling mit Kotorin ―― 1. SPRING INITIALIZR
Mit Spring Boot herunterladen
Verwenden Sie thymeleaf3 mit parent, ohne Spring-Boot-Starter-Parent in Spring Boot anzugeben
Implementieren Sie eine einfache Rest-API mit Spring Security & JWT mit Spring Boot 2.0
Melden Sie sich mit HttpServletRequest # in Spring Security in der Servlet 3.x-Umgebung an