2016-11-10 55 views
2

我們通過Shibboleth對我們的Web應用程序的一些用戶進行身份驗證。該應用程序使用Play框架構建。我想將來自Shibboleth的標題綁定到Play表單。根據the documentation,使用Spring執行數據綁定。使用連字符綁定標題以播放框架表格

通常,綁定只是起作用。如果你有一個像

public User { 
    public String name; 
} 

然後用name場會自動匹配這兩個領域的結合形式的表單模型類。

來自Shibboleth的一個標題的形式是Shib-Identity-Provider。我想將它綁定到我的表單模型的字段,但連字符對於Java中的字段名稱不是合法的字符。有沒有一種方法可以將標題名稱映射到合法的Java字段名稱?這更一般地適用,我可以配置數據綁定,以便我不需要使用完全相同的表單字段名稱和Java類字段名稱來綁定工作嗎?

回答

1

您可以從數據綁定中明確地創建一個具有不同字段名稱的類。

例如,您可以創建一個case class Shib如下:

case class Shib (provider: String) 

,並確定將數據從播放綁定功能mapping

val formMapping = mapping(
    "Shib-Identity-Provider" -> text 
)(Shib.apply)(Shib.unapply) 

然後在你的控制器可以將數據直接從綁定請求。 你也可以實現一個自定義的Reads,它會做類似的事情。

+0

我原來的帖子並不清楚,但我使用的是Java,而不是Scala。 – evanjdooner

+0

那麼我很抱歉:) –