2017-04-03 3 views
2

Ich habe dies in meinem Index.Display angemeldet Benutzer Frühling Sicherheit

Angemeldete Benutzer:

Es zeigt „Gespeichert Benutzer:“ und nichts anderes, auch wenn kein Benutzer angemeldet ist in.User definitiv in correctly.The Absicht anmeldet ist es "Gespeichert Benutzer haben sagen: myusername "Wenn ich eingeloggt bin und nichts, wenn ich es nicht bin. Ich habe diese Bohne in einer @Configuration Klasse

@Bean 
public SpringSecurityDialect securityDialect() { 
return new SpringSecurityDialect(); 
} 

Mein build.gradle

     buildscript { 
repositories{ 
    mavenCentral() 
} 
dependencies { 
    classpath 'org.springframework.boot:spring-boot-gradle-plugin:1.5.2.RELEASE' 
} 
} 


apply plugin: 'java' 
apply plugin: 'idea' 

repositories { 
mavenCentral() 
} 

// angeben Abhängigkeiten Abhängigkeiten {

compile 'org.hashids:hashids:1.0.1' 
compile 'org.springframework.boot:spring-boot-starter-thymeleaf' 
compile 'org.springframework:spring-orm:4.3.7.RELEASE' 
compile 'org.hibernate:hibernate-core:5.2.9.Final' 
compile 'org.hibernate:hibernate-entitymanager:5.0.6.Final' 
compile 'org.apache.tomcat:tomcat-dbcp:8.0.30' 
compile 'org.springframework.boot:spring-boot-starter-security' 
compile 'org.thymeleaf.extras:thymeleaf-extras-springsecurity4:2.1.2.RELEASE' 
compile group: 'org.springframework.data', name: 'spring-data-jpa', version: '1.11.1.RELEASE' 
runtime 'com.h2database:h2' 
runtime 'javax.transaction:jta:1.1' 
runtime 'org.aspectj:aspectjweaver:1.8.7' 
testCompile 'org.springframework.boot:spring-boot-starter-test' 

}

Meine html

<!DOCTYPE html> 
    <html lang="en"> 
<head> 
<meta charset="UTF-8"></meta> 
<title>Homepage</title> 
</head> 
<body> 
<div sec:authorize="isAuthenticated()"> 
<p>Logged user: <span sec:authentication="name"></span></p> 
</div> 
<form action="searchProducts" method="get"> 
<table> 
    <tr> 
     <td> What you want to search for : </td><td> <input name="searchterm" type="text"/> <input type="submit" name="submit" value="search"/> </td> 
    </tr> 


</table> 


</form> 
</body> 
</html> 

Thymeleaf Config

import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.Configuration; 
import org.thymeleaf.extras.springsecurity4.dialect.SpringSecurityDialect; 

/** 
* Created by danie on 01/04/2017. 
*/ 
@Configuration 
public class ThymeleafConfig { 

@Bean 
public SpringSecurityDialect springSecurityDialect(){ 
    return new SpringSecurityDialect(); 
} 
} 

Templateconfig

  @Configuration 
    public class TemplateConfig { 
@Bean 
public SpringResourceTemplateResolver templateResolver() { 
    final SpringResourceTemplateResolver templateResolver = new   SpringResourceTemplateResolver(); 
    templateResolver.setCacheable(false); 
    templateResolver.setPrefix("classpath:/"); 
    templateResolver.setSuffix(".html"); 
    return templateResolver; 
} 

@Bean 
public SpringTemplateEngine templateEngine() { 
    final SpringTemplateEngine springTemplateEngine = new SpringTemplateEngine(); 
    springTemplateEngine.addTemplateResolver(templateResolver()); 
    return springTemplateEngine; 
} 

@Bean 
public ThymeleafViewResolver viewResolver() { 
    final ThymeleafViewResolver viewResolver = new ThymeleafViewResolver(); 
    viewResolver.setTemplateEngine(templateEngine()); 
    viewResolver.setOrder(1); 
    return viewResolver; 
} 

Security Config

 @Configuration 
    @EnableWebSecurity 
    public class SecurityConfig extends WebSecurityConfigurerAdapter { 

@Autowired 
private UserService userService; 

@Autowired 
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { 
    auth.userDetailsService(userService); 
} 

Antwort

0

in Ihrem HTML, haben Sie die Sicherheit Namespace hinzuzufügen:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" 
    xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3"> 

Update:

Daniel fügte auch springTemplateEngine.addDialect(new SpringSecurityDialect());-templateEngine()

+0

Es funktioniert für mich nach dem Entfernen 'TemplateConfig' –

+0

Damit abzuarbeiten ich die Linie springTemplateEngine.addDialect (neu SpringSecurityDialect()) hinzugefügt ; zu templateEngine() und es reparierte es vielen Dank – Daniel

Verwandte Themen