GWT ile geliştirilmiş bir 3. parti uygulamasıyla çalışmak için Windows kimlik doğrulaması almaya çalışıyorum. Uygulamaya, bir windows sunucusunda tomcat ile ev sahipliği yapıyorum. Siteye bir IIS proxy'si üzerinden erişiyorum (tomcat'in belgelerini izleyerek yüklendi).Neden request.getRemoteUser() tomcat windows hizmet hesabını döndürüyor bazen
"<% = request.getRemoteUser()%>" öğesini görüntülemek için webapp'ın bir .jsp'sini değiştirirseniz, windows hesabım için atladığım kullanıcı adını alıyorum.
Ancak webapp, Tomcat windows hizmetini sunucuda yüklediğim hesapla beni doğrular.
Webapp'ın (kaynak kodlu) kaynak kodunda, tam olarak aynı "request.getRemoteUser()" çağrısı görüyorum, bu yüzden farkın nerede olabileceğini merak ediyorum.
import javax.servlet.http.HttpServletRequest;
public class RemoteUserLoginProvider
extends BaseRequestLoginProvider
{
public String extractLoginFromRequest(HttpServletRequest request)
{
return request.getRemoteUser();
}
}
Ve: https://github.com/google/guice/issues/780:
import com.google.inject.Inject;
import com.google.inject.Provider;
import javax.servlet.http.HttpServletRequest;
public abstract class BaseRequestLoginProvider
implements Provider<String>
{
@Inject
private Provider<HttpServletRequest> requestProvider;
public abstract String extractLoginFromRequest(HttpServletRequest paramHttpServletRequest);
public String get()
{
HttpServletRequest request = (HttpServletRequest)this.requestProvider.get();
String userlogin = extractLoginFromRequest(request);
return userlogin;
}
}
benim sorunum google'ın Guice bu hatadan bağlanabilir Could İşte
bozulamaz sınıfları nelerdir?Öyleyse, etrafta bir iş var mı?
Sorumu burada tekrar yazdım: http://stackoverflow.com/questions/38664679/request-getremoteuser-returns-a-different-login-in-jsp-than-in-a-servlet-filt, ek testlerden sonra Sorunun guice/gwt ile olasılığını dışlamak için. – Laloutre