Date de création : | 27 Novembre 2003 | |
Dernière modification : | 27 Novembre 2003 | |
Diffusion : | internet |
1er Cas de fichier de configuration XML : |
< ?xml version= "1.0 " ?> |
import java.io.IOException;
import java.net.URL;
import javax.servlet.jsp.JspException;
import org.apache.commons.digester.*;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
public class Config
{
//déclaration des variables de la classe
private static Config singleton = null;
private String authenticateURL = null;
private String validateURL = null;
private String logoutURL = null;
/**
* @return server CAS authenticate URL
*/
private String getAuthenticateURL() {
return authenticateURL;
}
/**
* @return server CAS Logout URL
*/
private String getLogoutURL() {
return logoutURL;
}
/**
* @return server CAS validate URL
*/
private String getValidateURL() {
return validateURL;
}
/**
*
* @throws IOException
* @throws JspException
*/
private config() throws IOException, JspException {
try {
Class requestingClass = this.getClass();
//Emplacement du fichier de config à
parser à partir du répertoire classes
URL resourceURL = requestingClass.getResource("/properties/fr_univ_rennes1/cas.xml");
if (resourceURL == null){
throw new JspException ("cas.xml does
not exist ");
}
//Création d'une instance Digester
Digester dig = new Digester();
//On rend l'objet disponible à la manipulation
en le mettant en haut de la pile
dig.push(this);
//Chaque fois que "cas" sera lu à
la lecture du fichier de config on fera appelle à la méthode addRoot()
avec 4 paramètres
dig.addCallMethod("cas","addRoot",4);
//Premier paramètre de la méthode
addRoot()
dig.addCallParam("cas/hostname",0);
//Deuxième paramètre de la méthode
addRoot()
dig.addCallParam("cas/port ",1);
//Troisième paramètre de la méthode
addRoot()
dig.addCallParam("cas/baseUri",2);
//Quatrième paramètre de la méthode
addRoot()
dig.addCallParam("cas/version ",3);
//On parse le fichier dont le chemin est passé
en paramètre
dig.parse(new InputSource(resourceURL.toExternalForm()));
}
catch (IOException e) {
throw new JspException("Impossible to load file cas.xml
: "+e);
}
catch (SAXException e) {
throw new JspException(e);
}
}
/**
*
* @param server Parameter of file CASConfigFile.xml
* @param port Parameter of file CASConfigFile.xml
* @param baseURI Parameter of file CASConfigFile.xml
* @param version Parameter of file CASConfigFile.xml
*
*/
private void addRoot(String server, String port, String baseURI,
String version){
String baseUrlCas = "https://" + server + ":" + port + baseURI;
authenticateURL = baseUrlCas + "/login";
logoutURL = baseUrlCas + "/logout";
validateURL = baseUrlCas + "/validate";
}
/**
*
* @return Config Instance
* @throws IOException
* @throws JspException
*/
public static Config getInstance() throws IOException, JspException
{
if(singleton == null) {
singleton = new Config();
}
return singleton;
}
}
Dans cette exemple on s'aperçoit que la méthode addCallParam()
récupère la valeur d'une balise sans attributs.
AddCallParam(java.lang.String nom_de_la_balise, int index_du_paramètre_pour_addRoot)
Création : 27 Nov.2003 - Sébastien Gougeon (Université de Rennes 1) | |
Modifications : |