禁用RestController默认行为中的操作

时间:2017-12-21 17:24:51

标签: java rest spring-boot

我最近开始学习sping-boot框架,并且我正在尝试构建一个控制器来处理用户。 我创建了一个休息控制器如下:

@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    UserRepository userRepository;
    @Autowired
    BCryptPasswordEncoder bCryptPasswordEncoder;

    @PostMapping("/sign-up")
    public void signUp(@RequestBody User user) {
        user.setPassword(bCryptPasswordEncoder.encode(user.getPassword()));
        userRepository.save(user);
    }
}

这是模型:

@Entity
@Table(name = "req_user")
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private String username;
    @JsonIgnore
    private String password;
    private String email;

    public User() { }

    public User(String username, String password, String email) {
        this.id = null;
        this.username = username;
        this.password = password;
        this.email = email;
    }

    ...

    @JsonIgnore
    public String getPassword() {
        return password;
    }

    @JsonProperty
    public void setPassword(String password) {
        this.password = password;
    }

    ...
}

这是存储库:

@Repository
public interface UserRepository extends CrudRepository<User, Long> {

    User findByUsername(String username);

}

现在工作正常,但我想禁用一些提供的操作 RestController默认情况下。特别是,我想禁止查看所有用户列表并删除其中一个用户的可能性。建议的方法是什么?

1 个答案:

答案 0 :(得分:0)

如果要禁止查看所有用户列表并删除其中一个用户,则可以为应用程序实现spring安全。它将帮助您处理禁止并访问所需的这些方法。

这是文件弹簧安全性,您可以参考并申请您的项目。 https://docs.spring.io/spring-security/site/docs/4.2.8.RELEASE/reference/htmlsingle/