Comment définir correctement l'URL du service au Printemps CAS les propriétés du service

Lorsque l'on travaille avec Ressort de Sécurité + CAS je continuer à appuyer sur un petit bloc de route avec l'URL de callback qui est envoyé au TAS, c'est à dire le service de la propriété. J'ai regardé un tas d'exemples comme cette et cette, mais ils utilisent tous codés en dur de l'Url (même Le printemps TAS de docs). Un typique snip ressemble à quelque chose comme ça...

  <bean id="serviceProperties" class="org.springframework.security.ui.cas.ServiceProperties">
    <property name="service" value="http://localhost:8080/click/j_spring_cas_security_check" />
  </bean>

Tout d'abord, je ne veux pas coder en dur le nom du serveur ou le port depuis que je tiens ce GUERRE pour pouvoir être déployées n'importe où et je ne veux pas que mon application lié à une entrée DNS au moment de la compilation. Deuxièmement, je ne comprends pas pourquoi le Printemps ne peuvent pas détecter automatiquement de mon application contexte et la requête de l'URL de construire automatiquement l'URL. La première partie de cette déclaration sont encore debout, mais Comme Raghuram souligné ci-dessous avec ce lien, nous ne pouvons pas faire confiance le HTTP en-Tête d'Hôte du client pour des raisons de sécurité.

Idéalement, j'aimerais que l'URL du service exactement ce que l'utilisateur a demandé (tant que la demande est valide comme un sous-domaine de mycompany.com c'est donc sans soudure ou à tout le moins je voudrais seulement indiquer le chemin relatif de ma racine de contexte et d'avoir le Printemps de déterminer l'URL du service à la volée. Quelque chose comme ce qui suit...

  <bean id="serviceProperties" class="org.springframework.security.ui.cas.ServiceProperties">
    <property name="service" value="/my_cas_callback" />
  </bean>

OU...

  <bean id="serviceProperties" class="org.springframework.security.ui.cas.ServiceProperties">
    <property name="service" value="${container.and.app.derived.value.here}" />
  </bean>

Tout cela est-il possible ou facile ou ai-je manqué à l'évidence?

Peut-être ce lien est et donne un aperçu de votre besoin/problème?
Eh bien, j'ai certainement appris quelque chose et éliminés d'une solution possible. Puisque je ne peux pas compter sur la requête HTTP que je voudrais encore pour définir le service par le biais de certaines valeurs dérivées à l'heure du déploiement qui doit être sécurisé.
Je suis à l'aide de printemps 3; à noter que le lien vers le printemps de sécurité 3 docs

OriginalL'auteur Andrew White | 2010-12-29