エンティティがUser
あり、存在する各ユーザーには 1 つ以上の特定の役割/権限が必要です。たとえば、admin
user
などです。だから私authorities
は2つのフィールド(username
とauthority
)をapplication-context-securtiy.xml
持つテーブルを作成しました
<jdbc-user-service id="userService" data-source-ref="dataSource"
users-by-username-query="
select nickname, password, true from users where nickname=?"
authorities-by-username-query= "select username, authority AS authorities
from authorities where username=?"
/>
これは非常にうまく機能しています。
現在、すべてのユーザーとその役割/権限をリストするjspファイルを作成しようとしていますが、user.getAuthorites()
jspでそれらを印刷するようなことはできません。
すでに実装を試みましたUserDetailsService
が、User と UserDetailsService を接続する方法がわかりません。
アドバイスをいただければ幸いです。
編集:私がそれをどのように使用したいかのjspの一部:
<tbody>
<c:forEach var="user" varStatus="stats" items="${users}">
<tr>
<td>
<c:out value="${user.nickname}" />
<c:forEach var="role" varStatus="status_" items="${user.getAuthorities()}">
<c:out value="${role}" />
</c:forEach>
</td>
<td>test</td>
<td>options</td>
</tr>
</c:forEach>
</tbody>
コントローラーからビューにデータを送信する方法:
@RequestMapping(value = "/manageUsers", method = RequestMethod.GET)
public String startManageUsers(ModelMap model, Principal principal) {
List<User> list = userService.getUsers();
model.addAttribute("users", list);
return "showUsers";
}