import javax.security.auth.callback.UnsupportedCallbackException;
import javax.security.auth.login.LoginException;
+import org.argeo.cms.KernelHeader;
import org.argeo.cms.internal.kernel.Activator;
import org.argeo.util.LocaleCallback;
import org.argeo.util.LocaleUtils;
import org.springframework.security.authentication.AnonymousAuthenticationToken;
import org.springframework.security.core.Authentication;
-import org.springframework.security.core.authority.SimpleGrantedAuthority;
/** Login module which caches one subject per thread. */
public class AnonymousLoginModule extends AbstractLoginModule {
- private String anonymousRole = "ROLE_ANONYMOUS";
/** Comma separated list of locales */
private String availableLocales = null;
InterruptedException {
Locale selectedLocale = null;
// multi locale
- if (availableLocales != null && !availableLocales.trim().equals("")) {
- LocaleCallback localeCallback = new LocaleCallback(availableLocales);
- callbackHandler.handle(new Callback[] { localeCallback });
- selectedLocale = localeCallback.getSelectedLocale();
- } else {
- callbackHandler.handle(new Callback[] {});
- }
+ if (callbackHandler != null)
+ if (availableLocales != null && !availableLocales.trim().equals("")) {
+ LocaleCallback localeCallback = new LocaleCallback(
+ availableLocales);
+ callbackHandler.handle(new Callback[] { localeCallback });
+ selectedLocale = localeCallback.getSelectedLocale();
+ } else {
+ callbackHandler.handle(new Callback[] {});
+ }
- List<SimpleGrantedAuthority> authorities = Collections
- .singletonList(new SimpleGrantedAuthority(anonymousRole));
+ List<GrantedAuthorityPrincipal> authorities = Collections
+ .singletonList(new GrantedAuthorityPrincipal(
+ KernelHeader.ROLE_ANONYMOUS));
AnonymousAuthenticationToken anonymousToken = new AnonymousAuthenticationToken(
- Activator.getSystemKey(), null, authorities);
+ Activator.getSystemKey(), KernelHeader.USERNAME_ANONYMOUS,
+ authorities);
Authentication auth = getAuthenticationManager().authenticate(
anonymousToken);