我需要使用&&运算符在Spring @PreAuthorize注释中如下:
@PreAuthorize("hasAuthority('AUTH_ADMIN') && isEnabled(principal.department, #docCat)")
@RequestMapping(value = "/samedept/patient/{pin}/results/{docCat}/{docResultType}/{docId}", method = RequestMethod.GET,
headers = ContentTypeHeader.HEADER_APPLICATION_PDF)
ModelAndView secureViewResultPdf(@PathVariable(value = "pin") long pin,
@PathVariable(value = "docCat") String docCat,
@PathVariable(value = "docResultType") String docResultType,
@PathVariable(value = "docId") String docId);
我试过了,但我得到了
java.lang.IllegalStateException: Cannot handle (38) '&'
at org.springframework.expression.spel.standard.Tokenizer.process(Tokenizer.java:193)
我看过整个网络,但找不到一个&&的例子。运营商采用这种方式。有可能吗?
答案 0 :(得分:4)
如果&&
的含义为and
&&
修改为and
答案 1 :(得分:2)
如果你看一下spel文档 http://docs.spring.io/spring/docs/3.0.x/reference/expressions.html 你会看到Larry.Z是对的。
看看
6.5.6.2逻辑运算符 // - 和 -
// evaluates to false
boolean falseValue = parser.parseExpression("true and false").getValue(Boolean.class);