- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想练习使用 Spring MVC 在 Java 中构建应用程序。我对设计和实现我的想法有一些疑问。
这是我正在尝试开发的内容,下面您将找到我的设计问题。
A user navigates to a website that hosts artwork (html5 canvases) And has the ability to use it as a guest. The guest or a logged in user can search other people's artwork. The site allows for the end user to be able to create artwork and share it with the world by publishing it and generating a permanent URL for the resource. Anyone can access the artwork unless it has user/password protection that the author of the artwork can decide if needed. Only the author of the artwork should be allowed to edit his artwork. Users will be able to comment under images that belong to them or other users. Guests need to be members to make comments on other people's artwork or creating their own images and permanent urls.
问题:
我在网络开发方面的经验非常有限。我只是一个数据库老手。 :-(所以,如果这些问题像菜鸟一样,我深表歉意。我了解一些 spring 和 Java。
1).我应该有两种模板页面吗?每个用户的艺术作品页面,一个供作者使用,一个供其他用户/访客使用?不确定其他流行应用程序中如何处理此问题。
2).我应该如何通过 Spring Security 来管理这个问题。每个用户只能编辑自己的作品页面,而不能编辑其他人的作品页面。在文档中,我只看到 ROLE_USER/ROLE_ADMIN 的示例。这对于我的需求来说似乎太基本了。不知道从哪里开始并将其适合我涉及协作的用例。任何介绍此类设计的教程都会非常有帮助。
提前谢谢您。
最佳答案
您可以使用相同的模板来显示作者和访客的 View ,并根据当前用户对该页面图稿的权限修改页面上的某些元素。如果不同的 View 完全不同,那么您只会创建两个单独的页面,并且使页面动态化更麻烦,更不值得。
Spring Security 处理身份验证(当前用户是谁?)和授权(当前用户是否允许执行此操作?)。在这里,我们谈论的是authorization 。
您可以通过多种方式使用 Spring Security 进行授权。一种方法是使用一系列投票者策略来决定是否允许用户执行操作 ( AccessDecisionManager )。另一个是成熟的ACL implementation您可以在其中维护一组表,这些表描述一个人对您要锁定的每个资源的访问权限。从 ACL 中读取数据非常简单,但维护这些表的责任在于您。每次权限更改或创建安全对象时,您都必须插入或更新 ACL。向下滚动here查看示例。
我最近使用 Spring Security 评估了不同的授权方法,并决定自己使用用户的主体,并访问数据库以查看用户是否具有对资源的权限。 Spring Security 很复杂,如果您在站点上线后在 ACL 管理代码中引入了错误,那么祝您顺利找到它。该错误仅存在于那些修改了 ACL 的特定记录中。
我会保持简单。使用以下方法创建 SecurityManager:
public boolean canViewArtwork(String userPrincipal, Long artworkId);
public boolean canEditArtwork(String userPrincipal, Long artworkId);
然后,当需要进行安全检查时,调用这些方法。这是一种您可以离开并稍后返回并理解的代码。
请注意,SecurityManager 正在检查权限,而不是角色。项目始终以两个角色开始:“用户”和“管理员”。沿着这条路,这些界限总是开始变得模糊,最终你会发现条件语句到处都是。您最初仍然可以在系统中拥有这两个角色,但 SecurityManager 将是唯一处理它们的地方。如果您最终添加了第三个角色 - 没问题,只需更改您的 SecurityManager。
关于Java 和 Spring MVC 社交艺术分享网站的设计和架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20135097/
我有这个网站,这个特定页面是安全的,但是当它回发时,它回发到一个不安全的页面。如何解决? 我正在使用 ASP.NET 向导。我有这个页面 - checkout.aspx,页面包含这个控件 checko
我有 2 个 azure 网站 - 两个独立的项目 我现在有 2 个网址: myazurewebsite.azurewebsites.net myazureblog.azurewebsites.net
我有 2 个 azure 网站 - 两个独立的项目 我现在有 2 个网址: myazurewebsite.azurewebsites.net myazureblog.azurewebsites.net
环境: 旧网站: React 托管在 Heroku URL( http://sameurl.com ) 新网站: Java 托管在 Heroku URL ( http://sameurl.com )
我已在 Windows Azure 上注册了一个测试帐户来对其进行测试。我构建了一个 Hello world ASP.NET Web 应用程序 + 数据库只是为了测试。 我安装了 Visual Stu
我有一个可以收集和显示各种测量值的产品(不会详细介绍)。正如人们所期望的那样,显示部分是一个数据库+建立在其之上的网站(使用 Symfony)。 但是,我们可能还会创建一个 API 来向第三方公开数据
这个问题在这里已经有了答案: Software keyboard resizes background image on Android (16 个答案) 关闭 8 年前。 我有一个类似的问题:So
这个问题似乎很常见,但我真的无法根据现有答案解决问题。 我有一个简单的 maven 项目,没有任何复杂的部署配置等,并且想在点击“mvn site”时生成一个 Maven CheckStyle 报告。
有没有人看过有关何时进行横向扩展与纵向扩展的最佳选择的任何分析或信息。什么时候一个比另一个更有意义。 目前,在标准模式和基本模式下,2 个小型实例的费用与 1 个中型实例的费用相同。 拥有 2 个小型
有没有办法找到 azure 网站何时停止? (我通过门户网站停止了网站,但我不记得是什么时候......) 我正在寻找一些日志,但没有找到任何有用的内容。 谢谢。 最佳答案 您拥有的最接近的是 azu
我目前在 Azure VM 的 IIS 中拥有一个网站。我已将该站点复制到 2 个可用区域中的 2 个虚拟机上。 这可以保护网站免遭停机。 我需要为高负载时刻实现一些可扩展性。这似乎就是创建音阶集的目
我有一个托管在 Azure 上的网站 ( http://mike-ward.azurewebsites.net/ )。我从 Azure 门户设置了一个指向(引用?)我的网站的 Azure CDN。根据
我有一个 Azure 网站(不是 Web 角色),有 2 个槽:生产和暂存。 我只想为生产插槽启用 CDN,而不是为登台启用,问题是我找不到识别主机插槽的方法。 RoleEnvironment 不可用
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提出有关书籍、工具、软件库等建议的问题。您可以编辑问题,以便可以用事实和引用来回答它。 4年前关
我们正在考虑将一些网站从 Azure 云服务迁移到 Azure 网站(事情似乎就是这样进行的)。显然,我们被明确告知云服务不会保留文件系统状态,因为它们会在机器故障时重新部署。 我假设网站是基于 Bl
我有一个 Azure 网站,需要使用在 VM 上运行的 Elasticsearch 服务。 虽然我需要能够锁定对 Elasticsearch 的访问,以便只有 Azure 网站可以访问它,但我似乎无法
我有一个 azure 网站,位于 yis3.azurewebsites.net - 我已将其提升为“共享”网站,以便我可以使用自定义域。我拥有从 123-reg.co.uk 购买的域名 yorkshi
我正在使用 abcPDF 动态创建 PDF。 我想保存这些 PDF,以便客户随时检索。最简单的方法(也是我现在在当前服务器上所做的方法)是将完成的 PDF 保存到文件系统。 看来我一直坚持使用 blo
我们正在尝试了解 Windows Azure 管理 API 为 Azure 网站(而非 Webroles)返回的监控数据的复杂性 例如,下图描述了为 CPUTime 检索的数据点。它似乎表明,在晚上
看起来真的很愚蠢,因为我找不到它: 门户网站似乎不太直观,我如何为一个“网站”付费并在其中运行最多 500 个网站?我想当我通过单击左下角的加号添加“网站”时,我添加了整个虚拟机而不是子站点。如何仅添
我是一名优秀的程序员,十分优秀!