当前位置: 首页 > 知识库问答 >
问题:

如何授权html元素给特定用户sec:授权与thymeleaf?

丁绪
2023-03-14

我希望某些元素在前端只显示给特定的用户(而不是任何具有特定角色的用户)。

为什么这个工作:

<form sec:authorize="${principal.username.equals('A') }" th:action="@{'/saunojat/' + ${saunoja.username} + '/photo'}" method="POST" enctype="multipart/form-data">
    <input type="file" name="photo" />
    <p>Kuvan tarina: <input type="text" name="description"/></p>
    <p> Asetetaanko kuva profiilikuvaksi?<input type="checkbox" name="isProfilepicture"/></p>
    <input type="submit" value="Send!"/>
</form>

但这并不是:

<form sec:authorize="${principal.username.equals(saunoja.username) }" th:action="@{'/saunojat/' + ${saunoja.username} + '/photo'}" method="POST" enctype="multipart/form-data">
    <input type="file" name="photo" />
    <p>Kuvan tarina: <input type="text" name="description"/></p>
    <p> Asetetaanko kuva profiilikuvaksi?<input type="checkbox" name="isProfilepicture"/></p>
    <input type="submit" value="Send!"/>
</form>

Sanoja是模型中的一个属性。它是一个@实体:

package projekti;

import java.util.List;
import javax.persistence.ElementCollection;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.jpa.domain.AbstractPersistable;

@Entity
@AllArgsConstructor
@NoArgsConstructor
@Data
public class Saunoja extends AbstractPersistable<Long> {

    private String username;

    private String password;

    private String firstName;

    private String lastName;

    @ElementCollection(targetClass = String.class, fetch = FetchType.EAGER)
    private List<String> roles;

}

错误:

Whitelabel错误页此应用程序没有 /error的显式映射,因此您将此视为一个后备选项。

共有1个答案

金昂熙
2023-03-14

我终于用thymeleaf th:if修复了它。

<div th:if="${saunoja.username == currentSaunoja.username}">
    <form th:action="@{'/saunojat/' + ${saunoja.username} + '/photo'}" method="POST" enctype="multipart/form-data">
        <input type="file" name="photo" value="Valitse kuva"/>
        <p>Kuvan tarina: <input type="text" name="description"/></p>
        <p>Asetetaanko kuva profiilikuvaksi? <input type="checkbox" name="isProfilepicture"/></p>
        <input type="submit" value="Send!"/>
    </form>
</div>

CurrentSanoja是通过Spring Security认证登录的Sanoja。

 类似资料:
  • 问题内容: 我正在编写用于创建BigQuery和Google Cloud Storage授权的类。 在过去,我已经使用已被 弃用 。我正在尝试使用,但是我发现它只允许在需要使用时使用。 我知道一个可以转换到,但我不知道如何将它们转换成相反的方向(到)。例如,我正在这样创建我的连接: 谁能指出我的实现方向? 谢谢! 问题答案: 在大多数情况下,无论您在哪里使用,都可以使用。您只需要使用一点,那就是在

  • 我想更好地理解隐式授权流和授权代码授权流之间的区别,因为我不确定我目前的理解是否正确。 隐式授权流主要由前端应用程序用于验证用户身份吗? 隐式授权流是否只需要一个client_id、用户名和密码来进行身份验证,换句话说,永远不会发送client_secret? 授权码只是一个短期令牌吗? 将授权码交换为访问令牌后,客户端可以访问用户帐户多长时间?具体地说,如果客户端是一个长时间运行的脚本,那么用户

  • 介绍 除了内置的 用户认证 服务之外, Lumen 还提供了用户授权和资源访问控制的方案。有很多种方法与辅助函数能帮你处理授权逻辑。 总的来说,Lumen 中的使用和 Laravel 大同小异,我们会在这个文档中指出不同的地方,完整的用户授权文档还需要查阅 Laravel 授权文档 。 与 Laravel 的不同 定义权限 与 Laravel 相比,Lumen 的用户授权的不同之处在于如何定义权限

  • 概述 IoT系统使用OAtuh2协议进行接入与授权操作。原生的OAuth2支持Authenticatoin Code,Password,Client Credentials,Implicit四种授权模式。IoT系统扩展了OAuth2协议,以支持更多的接入方式,如基于微信登录的js_code模式,基于短信或邮件验证码的captcha模式。具体来讲,IoT系统支持以下授权模式: Js Code 适用于

  • 主要内容:权限类型说明授权就是为某个用户赋予某些权限。例如,可以为新建的用户赋予查询所有数据库和表的权限。MySQL 提供了 GRANT 语句来为用户设置权限。 在 MySQL 中,拥有 GRANT 权限的用户才可以执行 GRANT 语句,其语法格式如下: 其中: priv_type 参数表示权限类型; columns_list 参数表示权限作用于哪些列上,省略该参数时,表示作用于整个表; database.table

  • 我有一些自定义角色,例如: 当使用'ROLE_USER'时,“spans”中的文本可以正常显示,但当使用其他角色时,文本无法显示。然后我在自定义角色中添加'ROLE_'前缀,它又变得正常了。 我尝试删除“ROLE\uu0”前缀约束,如下所示: 它也不起作用。知道如何删除强制的“ROLE\uuux”前缀吗?