在Glassfish中使用JDBCRealm作爲身份驗證方式時,由於沒有爲用戶加載組/角色,因此無法登錄用戶。這通常只會在您的應用程序中出現403 Not Authorized消息。
JDBC領域不爲用戶加載任何組[403 Forbidden]
啓用對core.security FINEST記錄顯示以下內容:
FINE: Login module initialized: class com.sun.enterprise.security.auth.login.JDBCLoginModule FINEST: JDBC login succeeded for: [email protected] groups:[] FINE: JAAS login complete.
正如你所看到的,組是空的。
表:
CREATE TABLE users (
ID int(11) NOT NULL,
EMAIL varchar(255) NOT NULL,
PASSWORD longtext NOT NULL,
SALT longtext NOT NULL,
...
PRIMARY KEY (ID),
UNIQUE KEY EMAIL (EMAIL),
...
) ENGINE=InnoDB DEFAULT CHARSET=utf8$$
CREATE TABLE `users_groups` (
`ID` int(11) NOT NULL,
`groupname` varchar(255) NOT NULL,
KEY `FK_USERS_GROUPS_ID` (`ID`),
CONSTRAINT `FK_USERS_GROUPS_ID` FOREIGN KEY (`ID`) REFERENCES `users` (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8$$
Glassfish的境界: