許可權管理一直是乙個比較頭疼的問題。
現在實現的也只是功能許可權的問題。
使用者 -->角色-->許可權。
一般設定許可權都是用 url,可不可以轉換乙個方式呢,
由於struts2實現的web系統中功能都是通過action類中的方法體現,把action方法當作乙個資源,通過使用注釋指明資源id,可以通過資源id找到角色,然後和使用者的角色匹配。
廢話不說了,直接上**:
1.注釋類
@retention(retentionpolicy.runtime)
@target()
public @inte***ce authentication
2.注釋解析類
public class parseannotation catch (securityexception e) catch (nosuchmethodexception e)
if (method != null)
return null;}}
/** 暫時限定獲取方法異常時表示配置錯誤,換回null表示有許可權,返回注釋的內容則需要判斷
*/3.在action的方法上面加注釋
@authentication(name="edit_role_func")
public string edit()
else
this.addactionerror(this.gettext("common.msg.upd.fail"));
return action.success;
}4.實現許可權***
public class authenticationinterceptor extends abstractinterceptor catch (nosuchmethodexception e)
if (auth != null)
if (!"edit_role_func".equals(auth)) //這裡為了做測試,只是簡單的比較,已經拿到了resource id,去資料庫裡面匹配是很簡單的。
return invocation.invoke();}}
5.測試
達到預期效果,收工!
Spring如何與struts2結合
1.struts2的action由spring來負責進行例項化 struts.xml 2.專案啟動時由裝載spring web.xml org.springframework.web.context.contextloaderlistener web inf teacher selectall.js...
Struts 2 注釋教程1
struts 2 注釋例子 我們將通過基於struts 2的hello user的例子學習注釋。在這個例子中,我們將獲得使用者的名字並給使用者展示乙個歡迎的資訊。這裡有兩個版本的例子,第乙個我們將了解到如何使用struts2提供的智慧型預設功能來實現,我們除了部署描述符 descriptor 以外,...
Struts2字尾 深入Struts2
一 將action字尾變成html字尾 xmlversion 1.0 encoding utf 8 doctype struts public apache software foundation dtd struts configuration 2.1 en struts include file...