Liferay kullanıcılarına uygulamada oturum açtıklarında rol atamaları gerekiyor.Liferay'de kullanıcı için role role ekle
Ben 'Şifrematik' uygulayan özel sınıf 'authenticateByScreenName' yöntemde tüm mantığı uyguladık.
örnek kod:
public class ESBAuthenticator implements Authenticator{
public int authenticateByScreenName(long companyId, String screenName, String password,
Map<String, String[]> headerMap, Map<String, String[]> parameterMap)
setProfile(companyId, screenname);
return 1;
}
public static void setProfile(long companyId, long userId){
User user = UserLocalServiceUtil.getUser(userId);
Role liferayRole = RoleLocalServiceUtil.fetchRole(companyId, "Administrator");
RoleLocalServiceUtil.addUserRole(user.getUserId(), liferayRole.getRoleId());
UserLocalServiceUtil.updateUser(user);
}
}
ben log-in, görünüşe göre ben liferay veritabanının tabloları kontrol, işler ve bunlar güncellenir, benim kullanıcı "Yönetici" rolü atanmış demektir. Ancak, ön uçtaki portal "Yönetici" seçeneğini göstermiyor.
Ama basına, 'Hesabım' için 'kaydet' butonuna giderseniz, Çıkış yapın ve log-in tekrar Yönetici seçenekleri availables.
Bunun neden olduğunu bilen var mı ?, Rolü atadıktan sonra 'updateUser()' çağrıyorum, 'Kaydet' düğmesiyle aynı değil mi?
Olası çözüm: Kümenin karşısında önbelleğe alınan içeriği temizlersek, iyi çalıştığını buldum. Ben "kaydederken liferay ne bulamıyor ?, bu doğru çözüm olup olmadığını
MultiVMPoolUtil.clear();
bilen var:
https://www.liferay.com/es/web/kamesh.sampath1/blog/-/blogs/how-to-clear-liferay-cache
aşağıdaki satırı ekleyin: Ben bu yazı buldum "my_account" sayfasındaki tuşa basıldı. Belki bu önbelleği temizler? Veritabanı işleviyle bir senkronizasyon arıyordum ama hiçbir şey bulamadım. Bir sütun güncellenir eğer :(önbelleğe eğer, liferay kullanmak etmediğini gibi görünüyor
Ön kimlik doğrulayıcısı mı yoksa kimlik doğrulayıcısı mı? Post-authenticator sonra kullanıcı bağlamında yönetici ayrıcalıkları ile güncellenir edemez inanıyorum. –
Ön kimlik doğrulayıcısı: S. – dgcipp
Bunun yerine, UserLocalServiceUtil.addRoleUser (uzun roleId, long userId) 'yi deneyin! –