我们应该使用什么来代替Spring Security';s的JSP标记库在HTML页面的客户端具有安全性?

我们应该使用什么来代替Spring Security';s的JSP标记库在HTML页面的客户端具有安全性?,spring,security,spring-mvc,spring-security,single-page-application,Spring,Security,Spring Mvc,Spring Security,Single Page Application,正如您在项目中所知道的,UI是html页面,而不是jsp(类似于应用程序),我们无法使用Spring Security的jsp标记库。在客户端实现安全性的最佳策略是什么 例如,在jsp页面中,我使用以下代码根据用户访问权限显示或隐藏简单按钮: <sec:authorize access="hasRole('supervisor')"> <button type="button"></button> </sec:authorize> 现在,我怎

正如您在项目中所知道的,UI是
html
页面,而不是
jsp
(类似于应用程序),我们无法使用Spring Security的jsp标记库。在客户端实现安全性的最佳策略是什么

例如,在jsp页面中,我使用以下代码根据用户访问权限显示或隐藏简单按钮:

<sec:authorize access="hasRole('supervisor')">
<button type="button"></button>
</sec:authorize>


现在,我怎样才能在html页面中做到这一点呢?

请看一下
Thymeleaf
,尤其是。

如果您的视图是一个简单的html页面,则无法访问servlet上下文(或与spring安全相关的状态)

JHipster中的html文件不是普通的html文件,它们是Thymeleaf模板。JHipster生成一个Spring引导应用程序,当thymeleaf在类路径中时,它将是默认的视图解析器


如果您对一个简单的示例感兴趣,可以克隆以下存储库。模块“stateful”有一个简单的基于表单的登录,它使用thymeleaf模板和Spring安全性。对thymeleaf安全命名空间的引用可以在/stateful/src/main/resources/templates/navigation.html中找到。确切地说,JHipster使用thymeleaf,所以html文件实际上是模板,这是经过处理的,thymeleaf有一个安全命名空间。@Klaus Groenbaek:不是你的配偶,我投了2张赞成票,第三人投了反对票。我可以在我的个人资料中看到这一点,所以我要求解释Hipster应用程序仅对电子邮件使用Thymeleaf,而不是网页,它们是在angular基础上构建的单页应用程序。所以你的问题不应该用jhipster标记,否则答案是错误的。