Я пытаюсь заблокировать все приложение, кроме определенного URL / метода.
Вот мой applicationContext-security.xml
:
<global-method-security pre-post-annotations="enabled"/>
<http use-expressions="true">
<http-basic/>
<intercept-url pattern="/**" access="hasRole('ROLE_ADMIN')" />
<logout logout-success-url="/products" />
</http>
Вот класс с его аннотацией:
@RooWebScaffold(path = "products", formBackingObject = Product.class)
@RequestMapping("/products")
@Controller
public class ProductController {
@RequestMapping(value="/json", headers = "Accept=application/json")
@ResponseBody
@PreAuthorize("permitAll")
public String listJson() {
return Product.toJsonArray(Product.findAllProducts());
}
}
Однако, это не работает, как ожидалось.
Если я поменяю местами условия и получу permitAll
в конфиге и hasRole()
в аннотации, это сработает, как и ожидалось - но я пытаюсь добиться обратного.
Любой совет будет принята с благодарностью!