在 Glassfish 中使用 JDBCRealm 作为身份验证方式时,您无法登录用户,因为没有为用户加载组/角色。这通常只有在您的应用程序上显示 403 Not Authorized 消息时才会注意到。
为 core.security 启用 FINEST 日志记录显示以下内容:
FINE: Login module initialized: class com.sun.enterprise.security.auth.login.JDBCLoginModule
FINEST: JDBC login succeeded for: user@gmail.com 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$$
玻璃鱼领域: