java - 防止 URI 导航

标签 java web-applications permissions uri vaadin

我正在使用 Java 框架 Vaadin 创建 Web 应用程序。这个应用程序有不同的用户级别,当用户登录时,我根据他们的权限级别更改菜单。我遇到的问题是阻止用户通过键入 URI 访问他们不应该访问的页面。例如,如果用户登录到应用程序并且只有查看第一页的权限,他仍然可以通过在浏览器搜索栏中输入第二页的 URI 来访问第二页。

我一直在研究防止 URI 导航,但未能成功找到 Vaadin 中的实现方式。所以我的问题是如何防止 Vaadin 中的 URI 导航?如果您有不同的方法来阻止用户访问他们不应该访问的页面,请随时发布。

谢谢

最佳答案

如果您使用的是 Vaadin 7 Navigator要进行 URI 导航,您可以注册为 ViewChangeListener:如果您在 beforeViewChange 方法中返回“false”,您可以停止导航到新 View (如果您愿意,可以显示错误消息)。

例如,

navigator.addViewChangeListener(new ViewChangeListener() {
  @Override
  public boolean beforeViewChange(ViewChangeEvent event) {
    View newView = event.getNewView();
    String newViewName = event.getViewName();

    return canUserAccessView(newView, newViewName);  
  }

  @Override
  public void afterViewChange(ViewChangeEvent event) {
    //NO-OP
  }
});

我的主要项目不使用 Navigator,因为它是在 Vaadin 7 之前启动的:我们开发了一个非常相似的框架,它使用 URIFragmentListener 来做同样的事情。

关于java - 防止 URI 导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18225480/

相关文章:

java - 在 JavaFX 中居中裁剪图像

java - Android studio gradle.build 应用程序午餐时出现问题

java - Maven : Including a META-INF folder in the classes folder

java - Eclipse 更改 WebLogic Web 应用程序的上下文根

security - 查询 TFS 的权限

c# - 执行前检查用户是否有更新/选择/插入权限

java - 在 Javascript 中请求 URL,使用 Java Applet 获取 URL 内容,返回 Javascript?

java - 有效地确定列表中的元素应该被删除

java - 如何从 servlet 发送数组并在 HTML jquery 中接收?

iphone - 将Web应用添加到主屏幕后无法播放嵌入式Youtube视频