Spring Security @PreAuthorize 使用 SpEL 语言访问自动装配的 bean [重复]
Posted
技术标签:
【中文标题】Spring Security @PreAuthorize 使用 SpEL 语言访问自动装配的 bean [重复]【英文标题】:Spring Security @PreAuthorize access to autowired bean using SpEL language [duplicate] 【发布时间】:2019-04-02 09:49:50 【问题描述】:我想使用 SpEL 语言在 Spring Security @PreAuthorize 下访问我的自动装配 bean。
@Component
@Transactional
public class TodoDao implements ITodoDao
@Autowired
private SessionFactory sessionFactory;
@Autowired
private AuthenticationFacade authenticationFacade;
@Override
@PreAuthorize("...") // I want to access to one of my autowired bean here
public void changeTodoStatus(Todo todo)
Object user = authenticationFacade.getAuthentication().getPrincipal();
todo.setDone(!todo.isDone());
sessionFactory.getCurrentSession().update(todo);
【问题讨论】:
【参考方案1】:在您的 bean 名称前使用“@”:
@Component
@Transactional
public class TodoDao implements ITodoDao
@Autowired
private SessionFactory sessionFactory;
@Autowired
private AuthenticationFacade authenticationFacade;
@Override
@PreAuthorize("@authenticationFacade.(#toDo)") // I want to access to one of my autowired bean here
public void changeTodoStatus(Todo todo)
Object user = authenticationFacade.getAuthentication().getPrincipal();
todo.setDone(!todo.isDone());
sessionFactory.getCurrentSession().update(todo);
【讨论】:
以上是关于Spring Security @PreAuthorize 使用 SpEL 语言访问自动装配的 bean [重复]的主要内容,如果未能解决你的问题,请参考以下文章
Spring mvc / security:从spring security中排除登录页面
Spring Security:2.4 Getting Spring Security
没有 JSP 的 Spring Security /j_spring_security_check