【问题标题】:sec:authorize="hasRole('ROLE_ADMIN')" in angularsec:authorize="hasRole('ROLE_ADMIN')" 角度
【发布时间】:2020-06-12 11:01:03
【问题描述】:

我正在实施Role based spring security

在这个例子中,他们使用 thymeleaf 作为前端,但我使用 angular9 和 html。

他们正在使用sec:authorize="hasRole('ROLE_ADMIN')" 提供对管理员的访问权限,如果我想在 html 中提供相同的内容,同样的方式,因为我使用了以下代码,

    <li *ngFor="let user of users">
        {{user.username}} ({{user.firstName}} {{user.lastName}})
        - <a sec:authorize="hasRole('ROLE_ADMIN')" (click)="deleteUser(user.userid)" class="text-danger">Delete</a>
    </li>

登录的人是 Role_user,尽管删除链接对用户可见。 我该如何限制。

提前致谢。

【问题讨论】:

  • sec:authorize 是 thymeleaf 特定的实现。 Angular 对此一无所知。
  • 您可能必须自己执行此操作,方法是在 ajax 调用的响应中添加一个角色字段,然后检查用户是否存在该特定角色。

标签: java angular spring-boot spring-security role-based


【解决方案1】:

使用 *ngIf 指令 显示和隐藏锚标记

<li *ngFor="let user of users">
        {{user.username}} ({{user.firstName}} {{user.lastName}})
        - <a *ngIf="hasRole('ROLE_ADMIN')" (click)="deleteUser(user.userid)" class="text-danger">Delete</a>
    </li>

hasRole() 必须返回 boolean。因为 *ngIf 接受 boolean

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-15
    • 1970-01-01
    • 2012-07-13
    • 2014-12-12
    • 2013-10-19
    • 2014-06-05
    • 2011-07-10
    • 2018-09-02
    相关资源
    最近更新 更多