Java帝国之安全争斗

作者:网友投稿 时间:2018-04-01 16:19

字号
沙龙活动 | 3月31日 京东、微博、华为实战专家与你共同探讨容器技术实践!

1.前言

Java帝国第三代国王的推动下,帝国对臣民们提供了一个叫做Java 认证与授权服务(Java Authentication Authorization Service, 简称JAAS)的东西, 在第四代国王的争取下, JAAS成功地进入了JDK,成为了标准包的一部分。

国王希望JAAS能够一统安全领域,像JDBC那样引发使用的狂潮,成为一个重要的基础设施,特意设置了一个新职位JAAS大臣,任命了一个自己的心腹去推动这件事情。

Java帝国之安全争斗

可是希望越大,失望就越大,除了几家利益相关的豪门望族在不断地摇旗呐喊之外,臣民们对JAAS不屑一顾,没多少人使用。

2雷秀才

IO大臣这一天在家里闲得无聊, 带着忠心耿耿的幕僚InputReader 出去微服私访,来到了京城一个著名的酒馆,点了几样精致小菜,一壶美酒。还没开吃,就看到邻桌的一个书生在唉声叹气。

IO大臣心中一动,就把他叫过来一起聊聊。

原来这位书生是雷秀才,说是家乡赋税沉重,都没法活下去了,特意来京城上访,无奈不得其法,连门都进不去。

IO大臣起了好奇心,忙问是怎么回事。

雷秀才说:“都是JAAS惹得祸。”

“JAAS?”

“就是认证和授权嘛!”  雷秀才看到对方不知道,略有失望之色。

“认证? 授权?”

“认证就是确定你是谁, 通常需要验证对方提供的用户名和密码。  授权就是确定你能做什么。比如能否创建账号,能够删除用户等等。”

“呃呃,想起来了,为什么不用官方的JAAS,帝国的标准还是挺好的嘛,比如JDBC。”

“老先生您有所不知,JDBC标准自然是没得说, 但是这个JAAS,唉,用起来极为繁琐,大家都不愿意使用。可是那个JAAS大臣根本不管这些,一直疯狂地推广JAAS, 如果不用,就要课以重税, 我们都活不下去了。”

“这倒是有点麻烦,你们打算怎么办?”  IO大臣先去试探对方套路。

雷秀才压低了声音:“不瞒老先生,我们家族已经推出了一个新的认证和授权的系统,叫做JSecurity,想托京城的大人们献给陛下,把JAAS替换掉。 ”

“哦?!”  IO大臣坐直了身体,这可是一件大事!

3JSecurity

IO大臣和InputReader 交换了一下眼色: 一个新的机会到来了!

之前和线程大臣斗,和XML大臣斗,和JDBC/JTA大臣斗,打来打去,杀来杀去,自己也占不到什么便宜。

这一次也许可以把安全领域给抓住!

InputReader问道: “你说说这个JSecurity有什么好处? ”

“简单,灵活,好用!比JAAS好用多了!” 雷秀才说。

“太抽象了,来点干货。”

雷秀才突然警惕起来,只是喝酒,笑而不语。

IO大臣决定打开天窗说亮话: “不瞒你说,我就是当朝的IO大臣,你不用怕,我可以帮你上奏陛下。”

“啊?!” 雷秀才满脸惊诧之色,没想到在这里竟然偶遇当朝大员, 看来上午去庙里拜佛是对的,赶紧站起来行礼: “失敬失敬!”

IO大臣说:“现在可以聊聊你的JSecurity了吧?”

雷秀才早有准备,从袖子中抽取出两张写满了代码的纸,呈给IO大臣和InputReader:

Subject currentUser = SecurityUtils.getSubject(); 

 

UsernamePasswordToken token = new UsernamePasswordToken("liuxin""123456"); 

 

currentUser.login( token ); 

 

if (currentUser.hasRole( "admin" )) { 

    logger.info("You're Administrator!" ); 

 

if (currentUser.isPermitted( "user:delete" )) { 

    logger.info("You can delete any users! be careful!"); 

currentUser.logout(); 

(友情提示:代码可左右滑动)

IO大臣戴上老花镜,举着纸看了半天:“你这里为什么叫做Subject啊? 怎么不叫User?”

责任编辑:CQITer新闻报料:400-888-8888   本站原创,未经授权不得转载
关键词 >>Java Jaas Jdbc
继续阅读
热新闻
推荐
关于我们联系我们免责声明隐私政策 友情链接