1.1.14.4.9. fejezet, Spring Security
Beküldte pzoli - 2012, június 12 - 4:11du
applicationContext.xml-be elhelyezhetünk statikus jogosultság kezelést:
<security:authentication-manager> <security:authentication-provider> <security:user-service> <security:user name="prime" password="faces" authorities="ROLE_USER" /> </security:user-service> </security:authentication-provider> </security:authentication-manager>
Ha adatbázisból szeretnénk kezelni a felhasználókat, egy egyszerű módja ennek a következő két SQL tábla, és az authentication-provider DataSource alapra helyezése:
CREATE TABLE IF NOT EXISTS `users` ( `USER_ID` int(10) unsigned NOT NULL, `USERNAME` varchar(45) NOT NULL, `PASSWORD` varchar(45) NOT NULL, `ENABLED` tinyint(1) NOT NULL, PRIMARY KEY (`USER_ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `users` (`USER_ID`, `USERNAME`, `PASSWORD`, `ENABLED`) VALUES (100, 'prime', 'faces', 1), (110, 'username', 'passwd', 1); CREATE TABLE IF NOT EXISTS `user_roles` ( `USER_ROLE_ID` int(10) unsigned NOT NULL, `USER_ID` int(10) unsigned NOT NULL, `AUTHORITY` varchar(45) NOT NULL, PRIMARY KEY (`USER_ROLE_ID`), KEY `FK_user_roles` (`USER_ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; INSERT INTO `user_roles` (`USER_ROLE_ID`, `USER_ID`, `AUTHORITY`) VALUES (1, 100, 'ROLE_USER'), (2, 110, 'ROLE_USER'); ALTER TABLE `user_roles` ADD CONSTRAINT `FK_user_roles` FOREIGN KEY (`USER_ID`) REFERENCES `users` (`USER_ID`);
applicationContext.xml-ben:
<security:http auto-config="true" security="none" pattern="/login.jsp"/> <security:http auto-config="true"> <security:intercept-url pattern="/**" access="ROLE_USER" /> <security:form-login login-page="/login.jsp" default-target-url="/index.html" always-use-default-target="false" authentication-failure-url="/login.jsp?authfailed=true"/> <security:logout logout-url="/logout" logout-success-url="/"/> </security:http> <security:authentication-manager> <security:authentication-provider> <security:jdbc-user-service data-source-ref="dataSource" users-by-username-query=" select username,password, enabled from users where username=?" authorities-by-username-query=" select u.username, ur.authority from users u, user_roles ur where u.user_id = ur.user_id and u.username =? " /> </security:authentication-provider> </security:authentication-manager>
Itt a always-use-default-target="false" értékadás lehetővé teszi, hogy a bejelentkezés után visszatérjen a böngésző az azonosítást megelőző oldalra, a helyett hogy egy előre meghatározott lapra kerülne a nézet.
- A hozzászóláshoz be kell jelentkezni