protected Realm iniRealmFromLocation(String iniLocation) { Ini ini = Ini.fromResourcePath(iniLocation); return new IniRealm( ini ); } }
/** * Creates a {@code Realm} from the Ini instance containing account data. * * @param ini the Ini instance from which to acquire the account data. * @return a new Realm instance reflecting the account data discovered in the {@code Ini}. */ protected Realm createRealm(Ini ini) { //IniRealm realm = new IniRealm(ini); changed to support SHIRO-322 IniRealm realm = new IniRealm(); realm.setName(INI_REALM_NAME); realm.setIni(ini); //added for SHIRO-322 return realm; }
@Test public void testNullIni() { IniRealm realm = new IniRealm((Ini) null); }
protected static SecurityManager createTestSecurityManager() { Ini ini = new Ini(); ini.setSectionProperty("users", "test", "test"); return new DefaultSecurityManager(new IniRealm(ini)); }
public static Collection<Realm> get(final ConfigSource configSource) { final SecurityConfig securityConfig = new ConfigurationObjectFactory(configSource).build(SecurityConfig.class); Collection<Realm> realms = null; try { final Factory<SecurityManager> factory = new IniSecurityManagerFactory(securityConfig.getShiroResourcePath()); // TODO Pierre hack - lame cast here, but we need to have Shiro go through its reflection magic // to parse the [main] section of the ini file. Without duplicating code, this seems to be possible only // by going through IniSecurityManagerFactory. final DefaultSecurityManager securityManager = (DefaultSecurityManager) factory.getInstance(); realms = securityManager.getRealms(); } catch (final ConfigurationException e) { log.warn("Unable to configure RBAC", e); } return realms != null ? realms : ImmutableSet.<Realm>of(new IniRealm(securityConfig.getShiroResourcePath())); // Mainly for testing }
@Test(expected = IllegalStateException.class) public void testInitWithoutIniResource() { new IniRealm().init(); }
@Test public void testEmptyIni() { new IniRealm(new Ini()); }
@Test public void testIniFileWithoutUsers() { IniRealm realm = new IniRealm(); realm.setResourcePath("classpath:org/apache/shiro/realm/text/IniRealmTest.noUsers.ini"); realm.init(); assertTrue(realm.roleExists("admin")); } }
@Before public void setup() { sm = new DefaultSecurityManager(); Ini ini = new Ini(); Ini.Section section = ini.addSection(IniRealm.USERS_SECTION_NAME); section.put("guest", "guest, guest"); section.put("lonestarr", "vespa, goodguy"); sm.setRealm(new IniRealm(ini)); SecurityUtils.setSecurityManager(sm); }
@Test public void testVMSingleton() { DefaultSecurityManager sm = new DefaultSecurityManager(); Ini ini = new Ini(); Ini.Section section = ini.addSection(IniRealm.USERS_SECTION_NAME); section.put("guest", "guest"); sm.setRealm(new IniRealm(ini)); SecurityUtils.setSecurityManager(sm); try { Subject subject = SecurityUtils.getSubject(); AuthenticationToken token = new UsernamePasswordToken("guest", "guest"); subject.login(token); subject.getSession().setAttribute("key", "value"); assertTrue(subject.getSession().getAttribute("key").equals("value")); subject = SecurityUtils.getSubject(); assertTrue(subject.isAuthenticated()); assertTrue(subject.getSession().getAttribute("key").equals("value")); } finally { sm.destroy(); //SHIRO-270: SecurityUtils.setSecurityManager(null); } } }
@Test public void testIniFile() { IniRealm realm = new IniRealm(); realm.setResourcePath("classpath:org/apache/shiro/realm/text/IniRealmTest.simple.ini"); realm.init(); assertTrue(realm.roleExists("admin")); UsernamePasswordToken token = new UsernamePasswordToken("user1", "user1"); AuthenticationInfo info = realm.getAuthenticationInfo(token); assertNotNull(info); assertTrue(realm.hasRole(info.getPrincipals(), "admin")); }
/** * Creates a {@code Realm} from the Ini instance containing account data. * * @param ini the Ini instance from which to acquire the account data. * @return a new Realm instance reflecting the account data discovered in the {@code Ini}. */ protected Realm createRealm(Ini ini) { //IniRealm realm = new IniRealm(ini); changed to support SHIRO-322 IniRealm realm = new IniRealm(); realm.setName(INI_REALM_NAME); realm.setIni(ini); //added for SHIRO-322 return realm; }
public ShiroIniRealm(String url) { this(new IniRealm(url)); }
public ShiroIniRealm(String url) { this(new IniRealm(url)); }
/** * Creates a {@code Realm} from the Ini instance containing account data. * * @param ini the Ini instance from which to acquire the account data. * @return a new Realm instance reflecting the account data discovered in the {@code Ini}. */ protected Realm createRealm(Ini ini) { IniRealm realm = new IniRealm(ini); realm.setName(INI_REALM_NAME); return realm; } }
protected Realm iniRealmFromLocation(String iniLocation) { Ini ini = Ini.fromResourcePath(iniLocation); return new IniRealm( ini ); } }
@Override public Realm createRealm(Injector injector) { Ini ini = new Ini(); if (users != null && !users.isEmpty()) { ini.addSection("users").putAll(users); } if (roles != null && !roles.isEmpty()) { ini.addSection("roles").putAll(roles); } IniRealm realm = new IniRealm(ini); realm.setIni(ini); if (name != null) { realm.setName(name); } return realm; } }
public static Collection<Realm> get(final ConfigSource configSource) { final SecurityConfig securityConfig = new ConfigurationObjectFactory(configSource).build(SecurityConfig.class); Collection<Realm> realms = null; try { final Factory<SecurityManager> factory = new IniSecurityManagerFactory(securityConfig.getShiroResourcePath()); // TODO Pierre hack - lame cast here, but we need to have Shiro go through its reflection magic // to parse the [main] section of the ini file. Without duplicating code, this seems to be possible only // by going through IniSecurityManagerFactory. final DefaultSecurityManager securityManager = (DefaultSecurityManager) factory.getInstance(); realms = securityManager.getRealms(); } catch (final ConfigurationException e) { log.warn("Unable to configure RBAC", e); } return realms != null ? realms : ImmutableSet.<Realm>of(new IniRealm(securityConfig.getShiroResourcePath())); // Mainly for testing }