Java tutorial
package org.credo.shiro; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.config.IniSecurityManagerFactory; import org.apache.shiro.session.Session; import org.apache.shiro.subject.Subject; import org.apache.shiro.util.Factory; import org.apache.shiro.mgt.SecurityManager; ; /** * ???Shiro SecurityManager,realms?users?rolepermissions?INI? * * @author Credo * */ public class Quickstart { public static void main(String[] args) { // ?shiro SecurityManager . Factory<SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro.ini"); // SecurityManager?ShiroSecurityManager SecurityManager securityManager = factory.getInstance(); // ?????JVM? // ??????web?web.xml SecurityUtils.setSecurityManager(securityManager); // ---------------??shiro----------------- // ??? Subject currentSubject = SecurityUtils.getSubject(); // shiro session?,??webejb Session session = currentSubject.getSession(); System.out.println("cuuerntUser:" + currentSubject.toString()); session.setAttribute("someKey", "aValue"); String value = (String) session.getAttribute("someKey"); if (value.equals("aValue")) { System.out.println("??:" + value); } // ?,??? // ??,??? if (!currentSubject.isAuthenticated()) { // ???,?web?? UsernamePasswordToken token = new UsernamePasswordToken("lonestarr", "vespa"); // ??? token.setRememberMe(true); currentSubject.login(token); } //shiro?subject.?? System.out.println("User " + currentSubject.getPrincipal() + " Login Successful!"); //??? if (currentSubject.hasRole("schwartz")) { System.out.println("May the Schwartz be with you!"); } else { System.out.println("Hello, mere mortal."); } //????? (not instance-level) if (currentSubject.isPermitted("lightsaber:weild")) { System.out.println("You may use a lightsaber ring. Use it wisely."); } else { System.out.println("Sorry, lightsaber rings are for schwartz masters only."); } //a (very powerful) Instance Level permission: if (currentSubject.isPermitted("winnebago:drive:eagle5")) { System.out.println("You are permitted to 'drive' the winnebago with license plate (id) 'eagle5'. " + "Here are the keys - have fun!"); } else { System.out.println("Sorry, you aren't allowed to drive the 'eagle5' winnebago!"); } //all done - log out! currentSubject.logout(); System.exit(0); } }