0
I Use This!
Activity Not Available

Project Summary

前言为了不浪费你宝贵的时间,如果你是属于下列某一种情况,那么抱歉该框架不能够帮助您做一些事情,但是如果你是本着学习或闲着看看的,倒也无妨继续看看,或许从中可以得到某些灵感。
如果你不是从事java的B/S项目开发,那么这个框架暂时对你没有任何用处; 如果你开发的系统没有权限分离的要求,那么这个框架也对你没有实际的用处; 如果你的项目中同一个页面没有参杂不同权限的操作而且也没有类似这样的需求,那么这个框架仍然不能够帮助你; 那么,到底什么样的需求才可以使用这个框架呢?举一个简单的例子,一个用户管理的功能,在该功能的输出页面上有“添加”,“编辑”,“修改”,“删除”操作,但是现在有这么二个角色,一个管理员,一个是普通用户,前者可以看到这四个操作,而后者没有“删除”操作,在页面上的表现形式就是“删除”按钮没有了。好了,例子在这里,那么我们普通的做法是怎么做的呢?
// 普通的做法1
# 获取当前用户的权限信息;
# 根据用户的身份设置一个标志位来表示删除按钮是否可见
# 页面解析中(比如freemarker)判断这个标志位并决定是否输出“删除”这个操作的HTML元素;
# 输出最终结果到客户端

// 普通的做法2
# 为两个不同的角色准备不同的页面,根据角色信息导向到不同的页面

// 其他做法如果你也是采用上面的方法来处理这个例子的话,那么该框架或许可以帮你减轻不少的工作量和优化系统结构。那么security web框架到底可以做什么呢?
Security Web 框架的适用范围Security Web 框架采用 过滤器+配置+页面分析技术 来实现上面所说的例子的功能,仅仅需要在同一个界面的不同操作元素上增加控制属性即可,从而避免使用编程来解决这类似的问题。Security Web 框架的工作流程如下:
# 获取当前请求的URL信息;
# 根据配置决定是否需要对该URL进行页面过滤,不需要则直接跳过,否则进行下面的步骤;
# 调用实际处理并截获输出信息;
# 如果配置中的MIME包含该响应中指定的MIME类型,则进行处理,否则直接输出原始内容;
# 分析返回的页面内容,并判断某个元素是否需要过滤,不需要则直接忽略该元素,否则判断该元素中指定的用户角色是否包含当前用户的角色,没有则过滤该元素,否则保留该元素;
# 输出处理后的结果给客户端;上面就是一次请求处理的大致过程,项目和框架的耦合非常松散,仅仅需要提供一个获取当前用户角色的接口实现类,再就是在页面中配置需要过滤的元素(仅仅增加一个属性即可),就可以达到页面权限的过滤。但需要注意的是,这个框架不是解决访问权限的问题,而是剥离页面中当前用户不具有的权限的页面元素,通过其他方式来访问该元素对应的URL地址则不在本框架的考虑范畴之类,而且这样的框架有比较知名的SPRING SECURITY。
Security Web 框架关注的是页面元素的过滤,因此任何标准的HTML元素都可以在输出结果中得到控制,故该框架还可以做很多你想做的事情,比如:
根据不同的用户身份显示不同的菜单; 根据不同的用户身份显示不同的操作元素; …… Security Web 框架的特性设计之初就将security web框架定位为“低耦合,高度可配置,灵活,易使用”的特点。
低耦合整个配置中只有UserProfile接口是需要用户提供的,用来获取当前用户的角色身份信息,也是唯一需要项目中实现的接口。另外,由于HTML代码是归浏览器解释的,所以在其中对HTML元素添加自定义属性并不影响项目的框架使用,而且这里也只需要在有需要的元素上增加角色属性信息从而控制元素的剥离与否;
高度可配置、灵活框架采用XML配置文件进行配置信息的定制,包括各个接口实现类的配置,可以直接指定class路径,也可以使用spring中bean的名称;拦截栈的设置,设置需要拦截处理的URL,可以使用标准的java正则式,也可以使用ant风格的路径表达(spring中广泛用到了这种);页面元素的过滤级别、编码等等。高度可配置性也决定了框架的灵活性,具体的配置信息可以参看配置文件的SCHEMA。
易使用框架只需要一个jar包、一个配置文件和依赖的jar包即可工作,在web.xml文件中配置框架的核心过滤器,在classpath中放置配置文件并设置配置信息就可以运行框架了。

后续看完了介绍,如果你觉得你需要这样的框架,请关注该项目,最近正在进行测试于调整,相信短时间后就可以发布该项目了。

Tags

mjc securityweb web权限控制 权限

In a Nutshell, security-web...

 No code available to analyze

Open Hub computes statistics on FOSS projects by examining source code and commit history in source code management systems. This project has no code locations, and so Open Hub cannot perform this analysis

Is this project's source code hosted in a publicly available repository? Do you know the URL? If you do, click the button below and tell us so that Open Hub can generate statistics! It's fast and easy - try it and see!

Add a code location

Apache License 2.0
Permitted

Commercial Use

Modify

Distribute

Place Warranty

Sub-License

Private Use

Use Patent Claims

Forbidden

Hold Liable

Use Trademarks

Required

Include Copyright

State Changes

Include License

Include Notice

These details are provided for information only. No information here is legal advice and should not be used as such.

All Licenses

This Project has No vulnerabilities Reported Against it

Did You Know...

  • ...
    Black Duck offers a free trial so you can discover if there are open source vulnerabilities in your code
  • ...
    anyone with an Open Hub account can update a project's tags
  • ...
    in 2016, 47% of companies did not have formal process in place to track OS code
  • ...
    you can subscribe to e-mail newsletters to receive update from the Open Hub blog

 No code available to analyze

Open Hub computes statistics on FOSS projects by examining source code and commit history in source code management systems. This project has no code locations, and so Open Hub cannot perform this analysis

Is this project's source code hosted in a publicly available repository? Do you know the URL? If you do, click the button below and tell us so that Open Hub can generate statistics! It's fast and easy - try it and see!

Add a code location

Community Rating

Be the first to rate this project
Click to add your rating
   Spinner
Review this Project!
Sample ohloh analysis