Wednesday 4 March 2009

The One With DWR'dan HttpServletRequest Erişimi

DWR'dan httpservletrequest'e erişim için, dwr içinde Httpservletrequest kullanımı için benim bildiğim iki yol var. şimdiye kadar hep 1'i kullanıyordum ama 2. yol da bana çekici gelmeye başladı.

1. WebContextFactory.get().getHttpServletRequest()
2. metodun aldığı parametrelerden birini httpservletrequest yapıyoruz, ama ekrandan bu metodu js fonksiyonu olarak çağırırken bu parametre sanki yokmuş gibi davranıyoruz.

public class DWRUtility {
public void getData(int param, HttpServletRequest rq, String s) {
...
}
}

Javascript'ten bu metodu çağırırken de şöyle yapıyoruz:

DWRUtility.getData(7, "string deger", callbackFuncName);

Güzelmiş.

Dwr call'larında şu hata karşısında zaten ne yapılacağını biliyoruz:

A request has been denied as a potential CSRF attack

web.xml'deki dwr tanımına
crossDomainSessionSecurity parametresini "false" olarak set ediyoruz.

<init-param>
<param-name>crossDomainSessionSecurity</param-name>
<param-value>false</param-value>
</init-param>

Bunla ilgili security concern'lerini de okumanız gerekir tabi. Buradan okuyabilirsiniz.

2 comments:

Burak Tunalı said...

Merhabalar,

HttpServletRequest ve Response sınıflarının örneklerini alırken hata alıyorum..

WebContext ctx=WebContextFactory.get();
req=ctx.getHttpServletRequest();
res=ctx.getHttpServletResponse();

kodları derledikten sonra

denerken

"The specified call count is not number" hatası alıyorum..

Etrafta bununla alakalı bir sürü yorum var..Anlaşılır bir şey yok..Yardımcı olursanız çok sevinirim. Saygılar.

Mahir Tarlan said...

selam,

Kusura bakmayın, biraz geç oluyor. İlgili metodu yollamanız mümkün müdür? Bir inceleyeyim. :)

Mahir