本文整理匯總了Java中org.apache.shiro.mgt.SecurityManager類的典型用法代碼示例。如果您正苦於以下問題:Java SecurityManager類的具體用法?Java SecurityManager怎麽用?Java SecurityManager使用的例子?那麽恭喜您, 這裏精選的類代碼示例或許可以為您提供幫助。
SecurityManager類屬於org.apache.shiro.mgt包,在下文中一共展示了SecurityManager類的38個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於我們的係統推薦出更棒的Java代碼示例。
示例1: shiroFilter
點讚 3
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
@Bean(name="shiroFilter")
public ShiroFilterFactoryBean shiroFilter(@Qualifier("securityManager")SecurityManager manager) {
ShiroFilterFactoryBean bean=new ShiroFilterFactoryBean();
bean.setSecurityManager(manager);
//配置登錄的url和登錄成功的url
bean.setLoginUrl("/login");
bean.setSuccessUrl("/home");
//配置訪問權限
LinkedHashMap filterChainDefinitionMap=new LinkedHashMap<>();
filterChainDefinitionMap.put("/login", "anon"); //表示可以匿名訪問
filterChainDefinitionMap.put("/common/**", "anon");
filterChainDefinitionMap.put("/js/**","anon");
filterChainDefinitionMap.put("/druid/**","anon");
filterChainDefinitionMap.put("/captcha","anon");
filterChainDefinitionMap.put("/**", "authc");//表示需要認證才可以訪問
bean.setFilterChainDefinitionMap(filterChainDefinitionMap);
return bean;
}
開發者ID:ranji1221,項目名稱:lemcloud,代碼行數:19,
示例2: provideSecurityManager
點讚 3
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
@Provides
@Singleton
SecurityManager provideSecurityManager(
SessionManager sessionManager,
RememberMeManager rememberMeManager,
Realms realms,
Set authListeners) {
DefaultSecurityManager manager = new DefaultSecurityManager(realms.getRealms());
((AbstractAuthenticator) manager.getAuthenticator()).setAuthenticationListeners(authListeners);
manager.setSessionManager(sessionManager);
manager.setRememberMeManager(rememberMeManager);
return manager;
}
開發者ID:bootique,項目名稱:bootique-shiro,代碼行數:17,
示例3: setShiroConfiguration
點讚 3
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
/**
* Sets shiro configuration to the path of the resource
* that points to the {@code shiro.ini} file.
*
* @param resource the resource
*/
@Autowired
public void setShiroConfiguration(@Value("${shiro.authn.config.file:classpath:shiro.ini}") final Resource resource) {
try {
if (resource.exists()) {
final String location = resource.getURI().toString();
logger.debug("Loading Shiro configuration from {}", location);
final Factory factory = new IniSecurityManagerFactory(location);
final SecurityManager securityManager = factory.getInstance();
SecurityUtils.setSecurityManager(securityManager);
} else {
logger.debug("Shiro configuration is not defined");
}
} catch (final Exception e) {
throw new RuntimeException(e);
}
}
開發者ID:hsj-xiaokang,項目名稱:springboot-shiro-cas-mybatis,代碼行數:24,
示例4: createInstance
點讚 3
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
@Override
protected AbstractShiroFilter createInstance() throws Exception {
SecurityManager securityManager = getSecurityManager();
if (securityManager == null){
throw new BeanInitializationException("SecurityManager property must be set.");
}
if (!(securityManager instanceof WebSecurityManager)){
throw new BeanInitializationException("The security manager does not implement the WebSecurityManager interface.");
}
PathMatchingFilterChainResolver chainResolver = new PathMatchingFilterChainResolver();
FilterChainManager chainManager = createFilterChainManager();
chainResolver.setFilterChainManager(chainManager);
return new MySpringShiroFilter((WebSecurityManager)securityManager, chainResolver);
}
開發者ID:hsj-xiaokang,項目名稱:springboot-shiro-cas-mybatis,代碼行數:17,
示例5: loadShiroConfiguration
點讚 3
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
/**
* Sets shiro configuration to the path of the resource
* that points to the {@code shiro.ini} file.
*
* @param resource the resource
*/
public void loadShiroConfiguration(final Resource resource) {
try {
final Resource shiroResource = ResourceUtils.prepareClasspathResourceIfNeeded(resource);
if (shiroResource != null && shiroResource.exists()) {
final String location = shiroResource.getURI().toString();
LOGGER.debug("Loading Shiro configuration from [{}]", location);
final Factory factory = new IniSecurityManagerFactory(location);
final SecurityManager securityManager = factory.getInstance();
SecurityUtils.setSecurityManager(securityManager);
} else {
LOGGER.debug("Shiro configuration is not defined");
}
} catch (final Exception e) {
throw Throwables.propagate(e);
}
}
開發者ID:mrluo735,項目名稱:cas-5.1.0,代碼行數:24,
示例6: CentralDogmaSecurityManager
點讚 3
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
public CentralDogmaSecurityManager(File dataDir, Ini securityConfig) {
try {
sessionDao = new FileBasedSessionDAO(new File(dataDir, "_sessions").toPath());
} catch (IOException e) {
throw new IOError(e);
}
sessionManager = new CentralDogmaSessionManager(sessionDao);
final Factory factory = new IniSecurityManagerFactory(securityConfig) {
@Override
protected SecurityManager createDefaultInstance() {
DefaultSecurityManager securityManager = new DefaultSecurityManager();
securityManager.setSessionManager(sessionManager);
securityManager.setCacheManager(new MemoryConstrainedCacheManager());
return securityManager;
}
};
delegate = factory.getInstance();
}
開發者ID:line,項目名稱:centraldogma,代碼行數:20,
示例7: testHelloWorld
點讚 3
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
@Test
public void testHelloWorld() {
//1、獲取 SecurityManager 工廠,此處使用 Ini 配置文件初始化 SecurityManager
Factory factory = new IniSecurityManagerFactory("classpath:shiro.ini");
//2、得到 SecurityManager 實例 並綁定給 SecurityUtils
SecurityManager securityManager = factory.getInstance();
SecurityUtils.setSecurityManager(securityManager);
//3、得到 Subject 及創建用戶名/密碼身份驗證 Token(即用戶身份/憑證)
Subject subject = SecurityUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken("test", "234");
try {
//4、登錄,即身份驗證
subject.login(token);
} catch (AuthenticationException e) {
//5、身份驗證失敗
}
Assert.assertEquals(true, subject.isAuthenticated()); //斷言用戶已經登錄
//6、退出
subject.logout();
}
開發者ID:easymall,項目名稱:easymall,代碼行數:25,
示例8: testIniRealm
點讚 3
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
/**
* testIniRealm
* @Description: iniRealm的測試
* @return: void
* @Author: BeautifulSoup
* @Date: 2017年12月16日 上午11:41:43
*/
@Test
@Ignore
public void testIniRealm(){
Factory factory=new IniSecurityManagerFactory("classpath:inirealm-shiro.ini");
SecurityManager securityManager = factory.getInstance();
SecurityUtils.setSecurityManager(securityManager);
Subject subject = SecurityUtils.getSubject();
UsernamePasswordToken token=new UsernamePasswordToken("james_shu", "1997admin");
try{
subject.login(token);
}catch(AuthenticationException e){
e.printStackTrace();
}
System.out.println("用戶認證狀態:"+subject.isAuthenticated());
subject.logout();
System.out.println("用戶當前認證狀態:"+subject.isAuthenticated());
}
開發者ID:fuyunwang,項目名稱:ShiroDemo,代碼行數:25,
示例9: testCustomRealm
點讚 3
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
/**
* testCustomRealm
* @Description: CustomRealm的測試
* @return: void
* @Author: BeautifulSoup
* @Date: 2017年12月16日 上午11:41:53
*/
@Test
public void testCustomRealm(){
Factory factory=new IniSecurityManagerFactory("classpath:customrealm-shiro.ini");
SecurityManager securityManager = factory.getInstance();
SecurityUtils.setSecurityManager(securityManager);
Subject subject = SecurityUtils.getSubject();
UsernamePasswordToken token=new UsernamePasswordToken("BeautifulSoup", "1997admin");
try{
subject.login(token);
}catch(AuthenticationException e){
e.printStackTrace();
}
System.out.println("用戶認證狀態:"+subject.isAuthenticated());
subject.logout();
System.out.println("用戶當前認證狀態:"+subject.isAuthenticated());
}
開發者ID:fuyunwang,項目名稱:ShiroDemo,代碼行數:26,
示例10: testIniAuthorization
點讚 3
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
/**
* testIniAuthorization
* @Description: 使用inirealm完成授權
* @return: void
* @Author: BeautifulSoup
* @Date: 2017年12月16日 下午3:05:34
*/
@Test
@Ignore
public void testIniAuthorization(){
Factory factory=new IniSecurityManagerFactory("classpath:permission-shiro.ini");
SecurityManager securityManager = factory.getInstance();
SecurityUtils.setSecurityManager(securityManager);
Subject subject = SecurityUtils.getSubject();
//首先認證,認證通過之後才能授權
UsernamePasswordToken token=new UsernamePasswordToken("beautifulsoup", "password");
try{
subject.login(token);
}catch(AuthenticationException e){
e.printStackTrace();
}
System.out.println("用戶的認證狀態:"+subject.isAuthenticated());
boolean isPermitted=subject.isPermittedAll("user:create:01","user:query");
subject.checkPermissions("user:create:01","user:query");
System.out.println(isPermitted);
}
開發者ID:fuyunwang,項目名稱:ShiroDemo,代碼行數:27,
示例11: testCustomRealmAuthorization
點讚 3
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
/**
* testCustomRealmAuthorization
* @Description: 使用自定義realm完成授權
* @return: void
* @Author: BeautifulSoup
* @Date: 2017年12月16日 下午3:05:46
*/
@Test
public void testCustomRealmAuthorization(){
Factory factory=new IniSecurityManagerFactory("classpath:customrealm-shiro.ini");
SecurityManager securityManager = factory.getInstance();
SecurityUtils.setSecurityManager(securityManager);
Subject subject = SecurityUtils.getSubject();
//首先認證,認證通過之後才能授權
UsernamePasswordToken token=new UsernamePasswordToken("BeautifulSoup", "1997admin");
try{
subject.login(token);
}catch(AuthenticationException e){
e.printStackTrace();
}
System.out.println("用戶的認證狀態:"+subject.isAuthenticated());
boolean isPermitted=subject.isPermittedAll("item:query");
System.out.println(isPermitted);
}
開發者ID:fuyunwang,項目名稱:ShiroDemo,代碼行數:25,
示例12: shirFilter
點讚 3
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
@Bean("shiroFilter")
public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) {
ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
shiroFilter.setSecurityManager(securityManager);
shiroFilter.setLoginUrl("/login.html");
//shiroFilter.setSuccessUrl("/index.html");
shiroFilter.setUnauthorizedUrl("/");
Map filterMap = new LinkedHashMap<>();
filterMap.put("/public/**", "anon");
filterMap.put("/webjars/**", "anon");
filterMap.put("/api/**", "anon");
//swagger配置
filterMap.put("/swagger**", "anon");
filterMap.put("/v2/api-docs", "anon");
filterMap.put("/swagger-resources/configuration/ui", "anon");
filterMap.put("/login.html", "anon");
filterMap.put("/sys/login", "anon");
filterMap.put("/captcha.jpg", "anon");
filterMap.put("/**", "authc");
shiroFilter.setFilterChainDefinitionMap(filterMap);
return shiroFilter;
}
開發者ID:guolf,項目名稱:pds,代碼行數:27,
示例13: shiroFilter
點讚 3
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
/**
* shiroFilter
* @param manager
* @return
*/
@Bean(name="shiroFilter")
public ShiroFilterFactoryBean shiroFilter(@Qualifier("securityManager") SecurityManager manager) {
ShiroFilterFactoryBean bean = new ShiroFilterFactoryBean();
bean.setSecurityManager(manager);
// 配置登錄的url
bean.setLoginUrl("/login");
//bean.setSuccessUrl("/admin/main");
// 過濾鏈
LinkedHashMap filterChainDefinitionMap = new LinkedHashMap<>();
filterChainDefinitionMap.put("/login", "anon"); // 表示可以匿名訪問
filterChainDefinitionMap.put("/admin/**", "authc");// 管理員權限需要驗證過濾
bean.setFilterChainDefinitionMap(filterChainDefinitionMap);
return bean;
}
開發者ID:shinyjunjun,項目名稱:myblog,代碼行數:21,
示例14: shiroFilter
點讚 3
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
@Bean(name="shiroFilter")
public ShiroFilterFactoryBean shiroFilter(@Qualifier("securityManager") SecurityManager manager) {
ShiroFilterFactoryBean bean=new ShiroFilterFactoryBean();
bean.setSecurityManager(manager);
//配置登錄的url和登錄成功的url
bean.setLoginUrl("/login");
//配置訪問權限
LinkedHashMap filterChainDefinitionMap=new LinkedHashMap<>();
filterChainDefinitionMap.put("/login", "anon"); //表示可以匿名訪問
filterChainDefinitionMap.put("/captcha","anon");
filterChainDefinitionMap.put("/common/**", "anon");
filterChainDefinitionMap.put("/default/**","anon");
filterChainDefinitionMap.put("/druid/**", "anon");
filterChainDefinitionMap.put("/**", "authc");//表示需要認證才可以訪問
//filterChainDefinitionMap.put("/**", "anon");
bean.setFilterChainDefinitionMap(filterChainDefinitionMap);
return bean;
}
開發者ID:ranji1221,項目名稱:lemcloud,代碼行數:19,
示例15: main
點讚 3
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
public static void main(String[] args) {
//此處從ini文件來實現用用戶角色權限配置,實際多從數據庫表來實現
Factory factory = new IniSecurityManagerFactory("classpath:shiro.ini.bak");
//SercurityManager 對象
SecurityManager instance = factory.getInstance();
SecurityUtils.setSecurityManager(instance);
//測試用戶
Subject currentUser = SecurityUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken("admin", "admin");
boolean result = false;
try {
currentUser.login(token);
result = true;
LOG.debug("認證成功");
} catch (Exception e) {
result = false;
LOG.debug("認證失敗");
}
}
開發者ID:MiniPa,項目名稱:cjs_ssms,代碼行數:24,
示例16: testHelloworld
點讚 3
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
@Test
public void testHelloworld(){
//1.獲取SecurityManagerFactory,此處用shiro.ini來初始化
Factory factory = new IniSecurityManagerFactory("classpath:shiro.ini");
//2.得到securityManager實例
SecurityManager securityManager = factory.getInstance();
//3.綁定給securityManager
SecurityUtils.setSecurityManager(securityManager);
//4.獲取subject
Subject subject = SecurityUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken("zhang", "123");
try {
//5.登錄
subject.login(token);
} catch (Exception e) {
//6.身份驗證失敗
}
Assert.assertEquals(true, subject.isAuthenticated());
//7.登出
subject.logout();
}
開發者ID:l81893521,項目名稱:shiro-demo,代碼行數:26,
示例17: testCustomRealm
點讚 3
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
@Test
public void testCustomRealm(){
//1.獲取SecurityManagerFactory,此處用shiro-realm.ini來初始化(使用自定義realm)
Factory factory = new IniSecurityManagerFactory("classpath:shiro-realm.ini");
//2.得到securityManager實例
SecurityManager securityManager = factory.getInstance();
//3.綁定給securityManager
SecurityUtils.setSecurityManager(securityManager);
//4.獲取subject
Subject subject = SecurityUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken("zhang", "123");
try {
//5.登錄
subject.login(token);
} catch (Exception e) {
//6.身份驗證失敗
}
Assert.assertEquals(true, subject.isAuthenticated());
//7.登出
subject.logout();
}
開發者ID:l81893521,項目名稱:shiro-demo,代碼行數:26,
示例18: testCustomMultiRealm
點讚 3
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
@Test
public void testCustomMultiRealm(){
//1.獲取SecurityManagerFactory,此處用shiro.ini來初始化(使用自定義realm)
Factory factory = new IniSecurityManagerFactory("classpath:shiro-multi-realm.ini");
//2.得到securityManager實例
SecurityManager securityManager = factory.getInstance();
//3.綁定給securityManager
SecurityUtils.setSecurityManager(securityManager);
//4.獲取subject
Subject subject = SecurityUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken("wang", "123");
try {
//5.登錄
subject.login(token);
} catch (Exception e) {
//6.身份驗證失敗
}
Assert.assertEquals(true, subject.isAuthenticated());
//7.登出
subject.logout();
}
開發者ID:l81893521,項目名稱:shiro-demo,代碼行數:26,
示例19: testJDBCRealm
點讚 3
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
@Test
public void testJDBCRealm(){
//1.獲取SecurityManagerFactory,此處用shiro-jdbc-realm.ini來初始化(使用自定義realm)
Factory factory = new IniSecurityManagerFactory("classpath:shiro-jdbc-realm.ini");
//2.得到securityManager實例
SecurityManager securityManager = factory.getInstance();
//3.綁定給securityManager
SecurityUtils.setSecurityManager(securityManager);
//4.獲取subject
Subject subject = SecurityUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken("zhang", "123");
try {
//5.登錄
subject.login(token);
} catch (Exception e) {
//6.身份驗證失敗
}
Assert.assertEquals(true, subject.isAuthenticated());
//7.登出
subject.logout();
}
開發者ID:l81893521,項目名稱:shiro-demo,代碼行數:25,
示例20: testSubject
點讚 3
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
@Test
public void testSubject() {
BQRuntime bqRuntime = testFactory
.app("-c", "classpath:io/bootique/shiro/realm/IniRealmIT.yml")
.autoLoadModules()
.createRuntime();
Subject subject = new Subject.Builder(bqRuntime.getInstance(SecurityManager.class)).buildSubject();
subject.login(new UsernamePasswordToken("u11", "u11p"));
Assert.assertTrue(subject.hasRole("admin"));
assertArrayEquals(new boolean[]{true, true, true}, subject.isPermitted("do1", "do2", "do3"));
subject.logout();
subject.login(new UsernamePasswordToken("u12", "u12p"));
Assert.assertTrue(subject.hasRole("user"));
assertArrayEquals(new boolean[]{false, false, true}, subject.isPermitted("do1", "do2", "do3"));
subject.logout();
subject.login(new UsernamePasswordToken("u21", "u21p"));
Assert.assertFalse(subject.hasRole("user"));
assertArrayEquals(new boolean[]{false, false, false}, subject.isPermitted("do1", "do2", "do3"));
subject.logout();
}
開發者ID:bootique,項目名稱:bootique-shiro,代碼行數:26,
示例21: testFullStack
點讚 3
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
@Test
public void testFullStack() {
Realm mockRealm = mockRealm();
BQRuntime runtime = testFactory.app()
.module(b -> ShiroModule.extend(b).addRealm(mockRealm))
.autoLoadModules()
.createRuntime();
Subject subject = new Subject.Builder(runtime.getInstance(SecurityManager.class)).buildSubject();
assertFalse(subject.isAuthenticated());
// try bad login
try {
subject.login(new UsernamePasswordToken("uname", "badpassword"));
Assert.fail("Should have thrown on bad auth");
} catch (AuthenticationException authEx) {
assertFalse(subject.isAuthenticated());
}
// try good login
subject.login(new UsernamePasswordToken("uname", "password"));
assertTrue(subject.isAuthenticated());
}
開發者ID:bootique,項目名稱:bootique-shiro,代碼行數:27,
示例22: testFullStack_SecurityUtils
點讚 3
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
@Test
public void testFullStack_SecurityUtils() {
Realm mockRealm = mockRealm();
BQRuntime runtime = testFactory.app()
.module(b -> ShiroModule.extend(b).addRealm(mockRealm))
.autoLoadModules()
.createRuntime();
Subject subject = new Subject.Builder(runtime.getInstance(SecurityManager.class)).buildSubject();
assertNull(ThreadContext.getSubject());
// testing Shiro idiom of wrapping lambda in a subject...
subject.execute(() -> {
assertSame("Unexpected subject, thread state is disturbed", subject, SecurityUtils.getSubject());
});
}
開發者ID:bootique,項目名稱:bootique-shiro,代碼行數:19,
示例23: main
點讚 3
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
public static void main(String args[]){
//讀取配置文件,初始化工廠
Factory factory = new IniSecurityManagerFactory("classpath:shiro.ini") ;
//獲取SecurityManager的實例對象
SecurityManager instance = factory.getInstance();
SecurityUtils.setSecurityManager(instance);
//得到當前的用戶
Subject curentUser = SecurityUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken("crossoverjie","12341") ;
try {
curentUser.login(token);
System.out.println("認證成功");
}catch (Exception e){
e.printStackTrace();
System.out.println("認證失敗");
}
curentUser.logout();
}
開發者ID:crossoverJie,項目名稱:SSM,代碼行數:19,
示例24: resolveSecurityManager
點讚 3
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
public SecurityManager resolveSecurityManager() {
SecurityManager securityManager = getSecurityManager();
if (securityManager == null) {
if (log.isDebugEnabled()) {
log.debug("No SecurityManager available in subject context map. " +
"Falling back to SecurityUtils.getSecurityManager() lookup.");
}
try {
securityManager = SecurityUtils.getSecurityManager();
} catch (UnavailableSecurityManagerException e) {
if (log.isDebugEnabled()) {
log.debug("No SecurityManager available via SecurityUtils. Heuristics exhausted.", e);
}
}
}
return securityManager;
}
開發者ID:xuegongzi,項目名稱:rabbitframework,代碼行數:18,
示例25: SubjectThreadState
點讚 3
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
/**
* Creates a new {@code SubjectThreadState} that will bind and unbind the specified {@code Subject} to the
* thread
*
* @param subject the {@code Subject} instance to bind and unbind from the {@link ThreadContext}.
*/
public SubjectThreadState(Subject subject) {
if (subject == null) {
throw new IllegalArgumentException("Subject argument cannot be null.");
}
this.subject = subject;
SecurityManager securityManager = null;
if ( subject instanceof DelegatingSubject) {
securityManager = ((DelegatingSubject)subject).getSecurityManager();
}
if ( securityManager == null) {
securityManager = ThreadContext.getSecurityManager();
}
this.securityManager = securityManager;
}
開發者ID:xuegongzi,項目名稱:rabbitframework,代碼行數:22,
示例26: createSubject
點讚 3
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
public Subject createSubject(SubjectContext context) {
if (!(context instanceof WebSubjectContext)) {
return super.createSubject(context);
}
WebSubjectContext wsc = (WebSubjectContext) context;
SecurityManager securityManager = wsc.resolveSecurityManager();
Session session = wsc.resolveSession();
boolean sessionEnabled = wsc.isSessionCreationEnabled();
PrincipalCollection principals = wsc.resolvePrincipals();
boolean authenticated = wsc.resolveAuthenticated();
String host = wsc.resolveHost();
ServletRequest request = wsc.resolveServletRequest();
ServletResponse response = wsc.resolveServletResponse();
return new WebDelegatingSubject(principals, authenticated, host, session, sessionEnabled,
request, response, securityManager);
}
開發者ID:xuegongzi,項目名稱:rabbitframework,代碼行數:18,
示例27: createSecurityManager
點讚 3
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
@SuppressWarnings({"unchecked"})
private SecurityManager createSecurityManager(Ini ini, Ini.Section mainSection) {
Map defaults = createDefaults(ini, mainSection);
Map objects = buildInstances(mainSection, defaults);
SecurityManager securityManager = getSecurityManagerBean();
boolean autoApplyRealms = isAutoApplyRealms(securityManager);
if (autoApplyRealms) {
//realms and realm factory might have been created - pull them out first so we can
//initialize the securityManager:
Collection realms = getRealms(objects);
//set them on the SecurityManager
if (!CollectionUtils.isEmpty(realms)) {
applyRealmsToSecurityManager(realms, securityManager);
}
}
return securityManager;
}
開發者ID:xuegongzi,項目名稱:rabbitframework,代碼行數:23,
示例28: shirFilter
點讚 2
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
/**
* 處理攔截資源文件問題。
*
* @param securityManager
* @return
*/
@Bean
public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) {
ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
// 設置 SecurityManager
shiroFilterFactoryBean.setSecurityManager(securityManager);
// 如果不設置默認會自動尋找Web工程根目錄下的"/login.html"頁麵
shiroFilterFactoryBean.setLoginUrl("/login");
// 登錄成功後要跳轉的鏈接
shiroFilterFactoryBean.setSuccessUrl("/initPage");
//未授權界麵
shiroFilterFactoryBean.setUnauthorizedUrl("/403");
//攔截器.
Map filterChainDefinitionMap = new LinkedHashMap<>();
filterChainDefinitionMap.put("/favicon.png","anon");//解決彈出favicon.ico下載
filterChainDefinitionMap.put("/logout", "logout");
filterChainDefinitionMap.put("/css/**", "anon");
filterChainDefinitionMap.put("/js/**", "anon");
filterChainDefinitionMap.put("/img/**", "anon");
filterChainDefinitionMap.put("/font-awesome/**", "anon");
//自定義加載權限資源關係
List list = permissionService.findAll();
for (Permission p : list) {
if (!p.getPerurl().isEmpty()) {
String permission = "perms[" + p.getPerurl() + "]";
filterChainDefinitionMap.put(p.getPerurl(), permission);
}
}
//過濾鏈定義,從上向下順序執行,一般將 /**放在最為下邊
filterChainDefinitionMap.put("/**", "authc");
shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);
return shiroFilterFactoryBean;
}
開發者ID:ChinaLHR,項目名稱:JavaQuarkBBS,代碼行數:44,
示例29: shirFilter
點讚 2
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
@Bean("shiroFilter")
public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) {
ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
shiroFilter.setSecurityManager(securityManager);
//oauth過濾
Map filters = new HashMap<>();
filters.put("oauth2", new OAuth2Filter());
shiroFilter.setFilters(filters);
Map filterMap = new LinkedHashMap<>();
filterMap.put("/webjars/**", "anon");
filterMap.put("/druid/**", "anon");
filterMap.put("/api/**", "anon");
//swagger配置
filterMap.put("/swagger**", "anon");
filterMap.put("/v2/api-docs", "anon");
filterMap.put("/swagger-resources/configuration/ui", "anon");
filterMap.put("/sys/login", "anon");
filterMap.put("/**/*.css", "anon");
filterMap.put("/**/*.js", "anon");
filterMap.put("/**/*.html", "anon");
filterMap.put("/fonts/**", "anon");
filterMap.put("/plugins/**", "anon");
filterMap.put("/favicon.ico", "anon");
filterMap.put("/captcha.jpg", "anon");
filterMap.put("/", "anon");
filterMap.put("/**", "oauth2");
shiroFilter.setFilterChainDefinitionMap(filterMap);
return shiroFilter;
}
開發者ID:zhaoqicheng,項目名稱:renren-fast,代碼行數:35,
示例30: shirFilter
點讚 2
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
/**
* 配置shiro框架過濾器工廠
* 設置一些過濾器
*/
@Bean
public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager){
System.out.println("ShiroConfiguration.shirFilter()");
ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
// 必須設置 SecurityManager
shiroFilterFactoryBean.setSecurityManager(securityManager);
//攔截器.
Map filterChainDefinitionMap = new LinkedHashMap();
//配置退出過濾器,其中的具體的退出代碼Shiro已經替我們實現了
//filterChainDefinitionMap.put(LOGOUT_URL, "logout");
//:這是一個坑呢,一不小心代碼就不好使了;
//
//靜態資源
filterChainDefinitionMap.put("/css/**","anon");
filterChainDefinitionMap.put("/js/**","anon");
filterChainDefinitionMap.put("/images/**","anon");
filterChainDefinitionMap.put("/lib/**","anon");
filterChainDefinitionMap.put("/login","anon");
filterChainDefinitionMap.put("/","anon");
// 如果不設置默認會自動尋找Web工程根目錄下的"/login.jsp"頁麵
shiroFilterFactoryBean.setLoginUrl(LOGIN_URL);
// 登錄成功後要跳轉的鏈接
shiroFilterFactoryBean.setSuccessUrl(LOGIN_SUCCESS_URL);
//未授權界麵;
shiroFilterFactoryBean.setUnauthorizedUrl("/403");
//
filterChainDefinitionMap.put("/**", "authc");
shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);
return shiroFilterFactoryBean;
}
開發者ID:mmdsyl,項目名稱:BLOG-Microservice,代碼行數:43,
示例31: shirFilter
點讚 2
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
/**
* ShiroFilterFactoryBean 處理攔截資源文件問題。
* 注意:單獨一個ShiroFilterFactoryBean配置是或報錯的,以為在
* 初始化ShiroFilterFactoryBean的時候需要注入:SecurityManager
* Filter Chain定義說明
* 1、一個URL可以配置多個Filter,使用逗號分隔
* 2、當設置多個過濾器時,全部驗證通過,才視為通過
* 3、部分過濾器可指定參數,如perms,roles
*
* anon(匿名) org.apache.shiro.web.filter.authc.AnonymousFilter
* authc(身份驗證) org.apache.shiro.web.filter.authc.FormAuthenticationFilter
* authcBasic(http基本驗證) org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter
* logout(退出) org.apache.shiro.web.filter.authc.LogoutFilter
* noSessionCreation(不創建session) org.apache.shiro.web.filter.session.NoSessionCreationFilter
* perms(許可驗證) org.apache.shiro.web.filter.authz.PermissionsAuthorizationFilter
* port(端口驗證) org.apache.shiro.web.filter.authz.PortFilter
* rest (rest方麵) org.apache.shiro.web.filter.authz.HttpMethodPermissionFilter
* roles(權限驗證) org.apache.shiro.web.filter.authz.RolesAuthorizationFilter
* ssl (ssl方麵) org.apache.shiro.web.filter.authz.SslFilter
* member (用戶方麵) org.apache.shiro.web.filter.authc.UserFilter
* user 表示用戶不一定已通過認證,隻要曾被Shiro記住過登錄狀態的用戶就可以正常發起請求,比如rememberMe
*/
@Bean(name = "shirFilter")
public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) {
ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
// 必須設置 SecurityManager
shiroFilterFactoryBean.setSecurityManager(securityManager);
//攔截器.
Map filterChainDefinitionMap = new LinkedHashMap();
//配置退出過濾器,其中的具體的退出代碼Shiro已經替我們實現了
// 配置不會被攔截的鏈接 順序判斷
filterChainDefinitionMap.put("/css/**", "anon");
filterChainDefinitionMap.put("/fonts/**", "anon");
filterChainDefinitionMap.put("/img/**", "anon");
filterChainDefinitionMap.put("/js/**", "anon");
filterChainDefinitionMap.put("/ajax/**", "anon");
//
filterChainDefinitionMap.put("/toLogin", "anon");
filterChainDefinitionMap.put("/login", "anon");
filterChainDefinitionMap.put("/logout", "logout");
//anthc:authc filter 監聽,不登陸不能訪問
filterChainDefinitionMap.put("/**", "authc");
// 如果不設置默認會自動尋找Web工程根目錄下的"/login.jsp"頁麵
shiroFilterFactoryBean.setLoginUrl("/toLogin");
// 登錄成功後要跳轉的鏈接
shiroFilterFactoryBean.setSuccessUrl("/index");
//未授權界麵;
shiroFilterFactoryBean.setUnauthorizedUrl("/403");
shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);
return shiroFilterFactoryBean;
}
開發者ID:wu05281,項目名稱:admin-shiro,代碼行數:57,
示例32: setUp
點讚 2
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
@BeforeEach
void setUp() {
IniSecurityManagerFactory factory = new IniSecurityManagerFactory("./src/test/resources/shiro-test.ini");
SecurityManager securityManager = factory.getInstance();
SecurityUtils.setSecurityManager(securityManager);
subject = SecurityUtils.getSubject();
}
開發者ID:Java-Publications,項目名稱:vaadin-016-helloworld-14,代碼行數:9,
示例33: shiroFilterFactoryBean
點讚 2
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
/**
* 對過濾器進行調整
*
* @param securityManager
* @return
*/
@Bean
protected ShiroFilterFactoryBean shiroFilterFactoryBean(SecurityManager securityManager, SubjectFactory subjectFactory,@Qualifier("filters") Map filters) {
//把subject對象設為subjectFactory
((DefaultSecurityManager) securityManager).setSubjectFactory(subjectFactory);
ShiroFilterFactoryBean filterFactoryBean = super.shiroFilterFactoryBean();
filterFactoryBean.setSecurityManager(securityManager);
filterFactoryBean.setFilters(filters);
return filterFactoryBean;
}
開發者ID:kawhii,項目名稱:wolf,代碼行數:17,
示例34: shirFilter
點讚 2
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
/**
* ShiroFiterFactoryBean處理攔截資源文件問題。
* 注意:單獨一個ShiroFilerFactoryBean配置是或報錯的,因為在
* 初始化ShiroFilterFactoryBean的時候需要注入:SecurityManager
*
* Filter Chain定義說明
* 1.一個url可以配置多個Filer,使用逗號分隔
* 2.當設置多個過濾器時,全部驗證通過,才視為通過
* 3.部分過濾器可製定參數,如perms,roles
*
*/
@Bean
public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager){
System.out.println("ShiroConfiguration.shirFilter()");
ShiroFilterFactoryBean shiroFilterFactoryBean = new ShiroFilterFactoryBean();
//必須設置SecurityManager
shiroFilterFactoryBean.setSecurityManager(securityManager);
//如果不設置默認會自動尋找web工程根目錄下的"/login.jsp"頁麵
shiroFilterFactoryBean.setLoginUrl("/login");
//登錄成功後要跳轉的鏈接
shiroFilterFactoryBean.setSuccessUrl("/manage");
//未授權界麵
shiroFilterFactoryBean.setUnauthorizedUrl("/403");
//攔截器
Map filterChainDefinitionMap = new LinkedHashMap();
//配置退出過濾器,其中的具體的退出代碼Shiro已經替我們實現了
filterChainDefinitionMap.put("/logout","logout");
filterChainDefinitionMap.put("/css/**","anon");
filterChainDefinitionMap.put("/js/**","anon");
filterChainDefinitionMap.put("/img/**","anon");
filterChainDefinitionMap.put("/bootstrap/**","anon");
filterChainDefinitionMap.put("/font-awesome","anon");
//過濾鏈定義,從上向下順序執行
//authc:所有url都必須認證通過才可以訪問,anon:所有的url都可以匿名訪問
//自定義加載權限資源關係
List permissionList = permissionService.findConditions(null);
for (Permission permission: permissionList) {
if(StringUtil.isNotEmpty(permission.getUrl())){
String permi = "perms[" + permission.getUrl() + "]";
filterChainDefinitionMap.put(permission.getUrl(),permi);
}
}
filterChainDefinitionMap.put("/**","authc");
shiroFilterFactoryBean.setFilterChainDefinitionMap(filterChainDefinitionMap);
return shiroFilterFactoryBean;
}
開發者ID:ju5t1nhhh,項目名稱:CMSdemo,代碼行數:51,
示例35: main
點讚 2
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
public static void main(String[] args) {
Factory factory = new IniSecurityManagerFactory("classpath:shiro-first.ini");
SecurityManager securityManager = factory.getInstance();
SecurityUtils.setSecurityManager(securityManager);
Subject subject = SecurityUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken("zhangsan","111111");
try {
subject.login(token);
}catch (AuthenticationException e){
e.printStackTrace();
}
// 是否認證通過
boolean isAuthenticated = subject.isAuthenticated();
System.out.println("是否認證通過:" + isAuthenticated);
// 退出操作
subject.logout();
// 是否認證通過
isAuthenticated = subject.isAuthenticated();
System.out.println("是否認證通過:" + isAuthenticated);
}
開發者ID:lgpzjp,項目名稱:rure,代碼行數:28,
示例36: shirFilter
點讚 2
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
@Bean("shiroFilter")
public ShiroFilterFactoryBean shirFilter(SecurityManager securityManager) {
ShiroFilterFactoryBean shiroFilter = new ShiroFilterFactoryBean();
shiroFilter.setSecurityManager(securityManager);
//oauth過濾
Map filters = new HashMap<>(16);
filters.put("oauth2", new OAuth2Filter());
shiroFilter.setFilters(filters);
Map filterMap = new LinkedHashMap<>();
filterMap.put("/webjars/**", "anon");
filterMap.put("/druid/**", "anon");
filterMap.put("/api/**", "anon");
//swagger配置
filterMap.put("/swagger**", "anon");
filterMap.put("/v2/api-docs", "anon");
filterMap.put("/swagger-resources/configuration/ui", "anon");
filterMap.put("/sys/login", "anon");
filterMap.put("/**/*.css", "anon");
filterMap.put("/**/*.js", "anon");
filterMap.put("/**/*.html", "anon");
filterMap.put("/fonts/**", "anon");
filterMap.put("/plugins/**", "anon");
filterMap.put("/favicon.ico", "anon");
filterMap.put("/captcha.jpg", "anon");
filterMap.put("/", "anon");
filterMap.put("/**", "oauth2");
shiroFilter.setFilterChainDefinitionMap(filterMap);
return shiroFilter;
}
開發者ID:davichi11,項目名稱:my-spring-boot-project,代碼行數:35,
示例37: securityManager
點讚 2
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
/**
* 聲明SecurityManager
* @param myRealm
* @return
*/
@Bean(name="securityManager")
public SecurityManager securityManager(@Qualifier("myRealm") MyRealm myRealm) {
System.out.println("加載shiro");
DefaultWebSecurityManager manager=new DefaultWebSecurityManager();
manager.setRealm(myRealm);
return manager;
}
開發者ID:shinyjunjun,項目名稱:myblog,代碼行數:13,
示例38: authorizationAttributeSourceAdvisor
點讚 2
import org.apache.shiro.mgt.SecurityManager; //導入依賴的package包/類
/**
* 再加載securityManager
* @param manager
* @return
*/
@Bean
public AuthorizationAttributeSourceAdvisor authorizationAttributeSourceAdvisor(@Qualifier("securityManager") SecurityManager manager) {
AuthorizationAttributeSourceAdvisor advisor=new AuthorizationAttributeSourceAdvisor();
advisor.setSecurityManager(manager);
return advisor;
}
開發者ID:shinyjunjun,項目名稱:myblog,代碼行數:12,
注:本文中的org.apache.shiro.mgt.SecurityManager類示例整理自Github/MSDocs等源碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。