- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 GWT 编写我的应用程序。我的应用程序中有两个角色(ROLE_USER 和 ROLE_ADMIN)。 ROLE_ADMIN 有权访问某些处理程序
@Service
@PreAuthorize("hasAnyRole('ROLE_ADMIN')")
public class GetAuditDataListHandler extends AbstractActionHandler<GetAuditDataListAction, GetAuditDataListResult> {
// Code here
}
当我尝试在 ROLE_USER 下访问时,我想显示对话框(“访问被拒绝!”)。但它返回500 服务器上的调用失败;有关详细信息,请参阅服务器日志
com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter.onResponseReceived(RequestCallbackAdapter.java:209)
com.test.web.main.api.client.AuthRemoteServiceProxy$1.onResponseReceived(AuthRemoteServiceProxy.java:74)
com.google.gwt.http.client.Request.fireOnResponseReceived(Request.java:258)
com.google.gwt.http.client.RequestBuilder$1.onReadyStateChange(RequestBuilder.java:412)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:606)
com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
com.google.gwt.dev.shell.BrowserChannelServer.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:338)
com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:219)
com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:571)
com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:279)
com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
com.google.gwt.core.client.impl.Impl.apply(Impl.java)
com.google.gwt.core.client.impl.Impl.entry0(Impl.java:242)
sun.reflect.GeneratedMethodAccessor53.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:606)
com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:293)
com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:547)
com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364)
java.lang.Thread.run(Thread.java:744)
最佳答案
Spring 将在执行处理程序之前检查安全角色并抛出异常。
您通常能够在请求的客户端 onFailure() 方法中捕获此异常,但抛出的异常可能不可序列化,或者很可能不可用于 GWT 客户端代码并且无法序列化 - 导致错误.
看起来您正在使用 gwt-dispatch 库?我已经有一段时间没有使用它了,但是你可以覆盖 SpringSecureDispatchServlet
并添加您自己的 doUnexpectedFailure(Throwable e)
的实现方法。在那里你可以检查异常以查看它是否是 Spring 安全异常,而不是调用 RPCServletUtils.writeResponseForUnexpectedFailure(...)
返回状态代码 500 实现您自己的,返回更合适的错误代码(401 或 403)。
关于java - GWT 中的@Preauthorize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21473970/
关闭。这个问题需要details or clarity .它目前不接受答案。 想改善这个问题吗?通过 editing this post 添加详细信息并澄清问题. 4年前关闭。 Improve thi
我有以下类(class) public abstract class BaseCotroller { @RequestMapping("/m") public String m() {
我正在尝试了解 Spring Security。我使用 java-config 而不是 xml。我尝试创建一个 Controller ,然后测试 @PreAuthorize 表示法。但在我给定的代码中
更新(2012 年 4 月 17 日):结果是这样的。 根上下文.xml: 权限管理器.java package com.grsnet.qvs.auth; import com.grsnet
我们正在使用 RestController,并且我们总是在每个方法上收到警告,告诉我们 @PreAuthorize 注释中的变量无法解析: @GetMapping @PreAuthorize(
我的 Controller : @RequestMapping("/createchar") @PreAuthorize("hasRole('ROLE_USER')") public String c
在我的 spring 配置文件中我有 在我的 spring @Controller 中,我有一个 @RequestMapping,上面有一个 @PreAuthorize,如下所示: @PreAuth
我正在尝试理解一些 Spring 安全代码。我也是 Spring Security 的新手,我想我在这里缺少一些基本的东西。 我在其中一个类上有注释: @Controller @RequestMapp
我正在将 Spring Security 添加到一个 Spring 项目中。系统架构为REST,用户可以访问不同的资源。 我愿意将个人信息的访问权限授予作为此信息所有者的管理员和用户。我从简单开始:像
我有一个设置了 spring 安全性的 spring 应用程序。我已经使用@PreAuthorize(...) 注释了我的服务方法。因此网络上的每个人都需要一些特定的权限来访问这些方法,这很好。 但现
我有一个关于 Spring Security 和 Spring Caching 的问题。假设我有一个方法,并且我已经用 @PreAuthorize("condition") 和 @Cacheable(
我正在实现一个应用程序,该应用程序具有一些访问完全基于权限的方法。权限是使用 Spring 实现的。使用 添加权限@PreAuthorize 方法顶部的注释。问题是我希望在注释中有完全自定义的方法 (
SPEL 有什么技巧吗,所以我可以在 application.yml 中定义我的管理员角色,然后将它们直接加载到类似的东西中: @PreAuthorize("hasAnyRole(${my.secur
在我的test.properties文件我有一个名为 devmode 的 key 。做${devmode}里面@PreAuthorize失败。 @PreAuthorize("${devmode}")
我们正在尝试使用 Spring 的 @preAuthorize 标记来设置方法级别的安全性。一切都编译并运行良好,但限制不会发生。这是一种仅限管理员的方法,但即使是非管理员也可以访问。以下是我们如何在
SPEL 有什么技巧吗,所以我可以在 application.yml 中定义我的管理员角色,然后将它们直接加载到类似的东西中: @PreAuthorize("hasAnyRole(${my.secur
我正在使用 GWT 编写我的应用程序。我的应用程序中有两个角色(ROLE_USER 和 ROLE_ADMIN)。 ROLE_ADMIN 有权访问某些处理程序 @Service @PreAuthoriz
@PreAuthorize public void methodA() { methodB(); } @PreAuthorize public void methodB() { } 这里m
我希望为我的 REST 服务实现基于角色的安全性。我正在使用 spring-data-rest 并配置了一个 JpaRepository像这样: @Repository @RestResource(p
我正在使用 RestAssured 测试 API。 我调用的方法正在使用下一个注释: @PreAuthorize("hasAnyRole('ROLE1', 'ROLE2', 'ROLE3')") 我的
我是一名优秀的程序员,十分优秀!