2017-01-16 6 views
1

Ich frage mich, ob es möglich ist, Zugriff auf eine Subdomain mit Spring @RequestMapping zu erhalten, wenn die Subdomäne ein Platzhalter ist.Wildcard-Subdomain mit Spring @RequestMapping erhalten

Zum Beispiel möchte ich eine Methode schreiben, die aufgerufen wird, wenn eine beliebige Anzahl von Subdomains angefordert wird, und haben auch die Möglichkeit, die tatsächliche Subdomain, die die Person angefordert.

Also, wenn sie sub1.example.com besuchen, wird es eine Methode treffen, wo ich "Sub1" auf eine String-Variable zuordnen kann.

Und wenn sie sub2.example.com besuchen, wird es die gleiche Methode wie im vorherigen Beispiel treffen, und ich werde auch "sub2" auf eine String-Variable zuordnen können.

Ist das möglich?

Antwort

1

Was ich am Ende auf Absetzen war dieser Ansatz mit Spring MVC:

@RequestMapping(value="/someUrl") 
public String someControllerMethod(ModelMap model, HttpServletRequest request) 
{ 
    String subdomain = request.getServerName().split("\\.")[0]; 

    log.info("subdomain is: " + subdomain); 

    // more code here 
} 

ich nur sicherstellen, dass in der HttpServletRequest an die Methode übergeben und dann extrahieren Sie die Sub-Domain von der Anfrage. Das einzige Problem mit diesem Code ist, dass Sie keinen Punkt (.) In Ihrer Subdomain haben können (andernfalls wird nur der erste Teil der Subdomain erfasst).

Diese Lösung arbeitete für meine Bedürfnisse. Aber wenn Sie eine bessere Lösung haben, zögern Sie nicht, es zu veröffentlichen, und wenn es besser ist, werde ich es als die richtige Antwort machen.

Verwandte Themen