3

我正在使用thymeleaf-spring3 2.0.18Spring 3.1.1。我已经完成了一个可以正常工作的登录页面,但是,虽然解析了其他 Thymeleaf 属性,但没有解析“sec:authorize”,因为如果我查看生成视图的源代码,我可以看到它们。

有没有我遗漏的东西,比如依赖或特定配置?

这是我的 login.html:

<!DOCTYPE html>
<head>
...
</head> 

<body>
<div class="top">
    <div class="container">         
        <ul class="loginbar pull-right">
            <li sec:authorize="isAnonymous()"><a href="/login" class="login-btn">Login</a></li>   
            <li sec:authorize="isAuthenticated()" class="login-btn">Welcome <span sec:authentication="name">Bob</span></li>   
        </ul>
    </div>      
</div><!--/top-->

<!--=== Content Part ===-->
<div class="container">     
    <div class="row-fluid">
        <form name="f" th:action="@{/j_spring_security_check}" method="post" class="log-page">
            <h3>Login</h3>
            <div th:if="${loginError}" th:with="errorMsg=${session['SPRING_SECURITY_LAST_EXCEPTION'].message}" class="alert alert-error">
                Bad user or password.<br/>
                Cause: <span th:text="${errorMsg}">Wrong input!</span>
            </div>    
            <div class="input-prepend">
                <span class="add-on"><i class="icon-user"></i></span>
                <input name="j_username" class="input-xlarge" type="text" placeholder="Username" />
            </div>
            <div class="input-prepend">
                <span class="add-on"><i class="icon-lock"></i></span>
                <input name="j_password" class="input-xlarge" type="password" placeholder="Password" />
            </div>
            <div class="controls form-inline">
                <button class="btn-u pull-right" type="submit">Login</button>
            </div>
        </form>
    </div><!--/row-fluid-->
</div><!--/container-->     
<!--=== End Content Part ===-->

</body>
</html> 
4

2 回答 2

11

通过查看这个示例,我意识到我需要向 pom.xml 添加一个依赖项:

<dependency>
    <groupId>org.thymeleaf.extras</groupId>
    <artifactId>thymeleaf-extras-springsecurity3</artifactId>
    <version>2.0.1</version>
    <scope>compile</scope>
</dependency>

并且还需要在templateEnginebean 中添加额外的方言:

<bean id="templateEngine" class="org.thymeleaf.spring3.SpringTemplateEngine">
    <property name="templateResolver" ref="templateResolver"/>
    <property name="additionalDialects">
        <set>
            <bean class="org.thymeleaf.extras.springsecurity3.dialect.SpringSecurityDialect"/>
        </set>
    </property>
</bean>
于 2013-09-29T13:19:45.020 回答
0

我们遇到了类似的问题,我们通过在主控制器上下文配置中添加包扫描来解决它:

<context:component-scan base-package="org.thymeleaf.extras.springsecurity3" />
于 2013-10-04T20:41:10.200 回答