澶辨晥閾炬帴澶勭悊 |
瀹夊叏妗嗘灦Shiro浣跨敤 PDF 涓嬭澆
鏈珯鏁寸悊涓嬭澆錛?/strong>
閾炬帴錛?a target="_blank">https://pan.baidu.com/s/1BPX2FOFZfq5mIlg7Ec9Lbw
鎻愬彇鐮侊細(xì)uk3i
鐩稿叧鎴浘錛?/strong>
![]()
涓昏鍐呭錛?/strong>
1.鍙傝€冪綉鍧€錛?/div>
https://www.w3cschool.cn/shiro/co4m1if2.html
2.Shiro鐨勭畝浠嬩笌鏍稿績(jī)瀵硅薄浠嬬粛
2.1.Shiro涓殑鏍稿績(jī)妯″潡
2.2.Shiro鐨勬灦鏋?/div>
2.3.Shiro鐨勬牳蹇?jī)瀵硅?綾誨拰瀵硅薄)
3.璁よ瘉
3.1.Realm
3.1.1.SimpleAccountRealm
package com.shiro.authc;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.mgt.DefaultSecurityManager;
import org.apache.shiro.realm.SimpleAccountRealm;
import org.apache.shiro.subject.Subject;
public class Realm_Simple {
public static void main(String[] args) {
SimpleAccountRealm realm = new SimpleAccountRealm();
realm.addAccount("admin", "123");
realm.addAccount("guest", "456");
realm.addAccount("test", "789");
//1銆佸疄渚嬪寲SecurityManagert鍜屽搴旂殑Realm鏁版嵁銆?/div>
DefaultSecurityManager securityManager = new DefaultSecurityManager();
//娉ㄥ叆涓€涓猂ealm
securityManager.setRealm(realm);
//2銆佽幏鍙朣ubject瀵硅薄
SecurityUtils.setSecurityManager(securityManager);
Subject subject = SecurityUtils.getSubject();
//3銆佺▼搴忔彁浜ょ敤鎴峰悕鍜屽瘑鐮佷氦緇橲hiro鏉ヨ繘琛屽垽鏂€?/div>
String username = "admin";
String password = "123";
UsernamePasswordToken token = new UsernamePasswordToken(username, password);
try {
subject.login(token);
System.out.println("璁よ瘉鎴愬姛");
System.out.println("璁よ瘉鍚庣殑韜喚淇℃伅 = " + subject.getPrincipal());
} catch (org.apache.shiro.authc.UnknownAccountException e) {
System.out.println("鐢ㄦ埛鍚嶄笉瀛樺湪鐨勫紓甯?quot;);
} catch (org.apache.shiro.authc.IncorrectCredentialsException e) {
System.out.println("瀵嗙爜涓嶆紜?quot;);
}
}
}
3.1.2.IniRealm
3.1.2.1.Shiro-config.ini
[main]
authenticator=org.apache.shiro.authc.pam.ModularRealmAuthenticator
authenticationStrategy=org.apache.shiro.authc.pam.AtLeastOneSuccessfulStrategy
authenticator.authenticationStrategy=$authenticationStrategy
securityManager.authenticator=$authenticator
authorizer=org.apache.shiro.authz.ModularRealmAuthorizer
permissionResolver=org.apache.shiro.authz.permission.WildcardPermissionResolver
authorizer.permissionResolver=$permissionResolver
securityManager.authorizer=$authorizer
[users]
admin=123
guest=456
test=789
[roles]
[urls]
package com.shiro.authc;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.apache.shiro.config.IniSecurityManagerFactory;
import org.apache.shiro.subject.Subject;
import org.apache.shiro.util.Factory;
public class Realm_Ini {
public static void main(String[] args) {
//1銆佸垱寤轟竴涓猻hiro鐨勯厤緗枃浠訛紝騫朵笖璇誨彇INI鏂囦歡
Factory<org.apache.shiro.mgt.SecurityManager> factory = new IniSecurityManagerFactory("classpath:shiro-config.ini");
org.apache.shiro.mgt.SecurityManager securityManager = factory.getInstance();
//2銆佽幏鍙朣ubject瀵硅薄
SecurityUtils.setSecurityManager(securityManager);
Subject subject = SecurityUtils.getSubject();
//3銆佺▼搴忔彁浜ょ敤鎴峰悕鍜屽瘑鐮佷氦緇橲hiro鏉ヨ繘琛屽垽鏂€?/div>
String username = "admin";
String password = "123";
UsernamePasswordToken token = new UsernamePasswordToken(username, password);
try {
subject.login(token);
System.out.println("璁よ瘉鎴愬姛");
System.out.println("璁よ瘉鍚庣殑韜喚淇℃伅 = " + subject.getPrincipal());
System.out.println("鏄惁閫氳繃璁よ瘉 = " + subject.isAuthenticated());
} catch (org.apache.shiro.authc.UnknownAccountException e) {
System.out.println("鐢ㄦ埛鍚嶄笉瀛樺湪鐨勫紓甯?quot;);
} catch (org.apache.shiro.authc.IncorrectCredentialsException e) {
System.out.println("瀵嗙爜涓嶆紜?quot;);
}
}
}
|