2016-05-21 49 views
0

メニューはthymleafで、ログインログアウトボタンがあります。ここで はこのメニューの完全なページである:それはisAuthenticated方法を認識しない、ということらしいSpringEL式を評価している例外: "#authorization.expression( 'isAuthenticated()')"

There was an unexpected error (type=Internal Server Error, status=500). 
Exception evaluating SpringEL expression: "#authorization.expression('isAuthenticated()')" 

ので、どのように:

<!DOCTYPE html> 
<html> 
    <head> 

    </head> 
    <body> 
    <div class="navbar navbar-inverse navbar-fixed-top" th:fragment="header"> 
     <div class="container"> 
     <div class="navbar-header"> 
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse"> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      <span class="icon-bar"></span> 
      </button> 
      <a class="navbar-brand" href="#">RentIt Company</a> 
     </div> 
     <div class="navbar-collapse collapse"> 

      <ul class="nav navbar-nav navbar-right"> 
      <li th:if="${#authorization.expression('!isAuthenticated()')}"> 
       <a href="/signin" th:href="@{/signin}">Sign in</a> 
      </li> 
      <li th:if="${#authorization.expression('isAuthenticated()')}"> 
       <a href="/logout" th:href="@{/logout}">Logout</a> 
      </li> 
      </ul> 
     </div> 
     </div> 
    </div> 


    </body> 
</html> 

私が実行したときに問題があり、それはと不平を言います私はそれを修正することはできますか?

+0

@Ali Dehghani ........... –

+0

春のxmlファイルを共有してください。 – shankarsh15

答えて

0

あなたは(、異なる場合ビルドシステムに適応私はGradleのを使用しています)build.gradleのコードの部分の下に見、あなたのプロジェクトに依存関係を追加する必要があります。

dependencies { 
    // your dependencies ... 
    compile "org.thymeleaf:thymeleaf-spring4:3.0.1.RELEASE" 
    compile "org.thymeleaf.extras:thymeleaf-extras-springsecurity4:3.0.1.RELEASE" 
} 

そしてまた、次のようにご使用の構成にThymeleafに春のセキュリティ拡張機能を追加する必要がある:

@ComponentScan(basePackageClasses = HomeController.class) 
public class ServletContextConfig extends WebMvcConfigurerAdapter { 
    @Bean 
    public TemplateEngine templateEngine(ApplicationContext applicationContext) { 
     final SpringTemplateEngine templateEngine = new SpringTemplateEngine(); 
     templateEngine.setEnableSpringELCompiler(true); 
     templateEngine.addDialect(new SpringSecurityDialect();); 
     templateEngine.setTemplateResolver(defaultTemplateResolver(applicationContext)); 
     return templateEngine; 
    } 
    // other @Bean configurations ... 
} 
関連する問題