Ειδικότερα, το web service θα πρέπει να υλοποιεί το interface javax.xml.rpc.server.ServiceLifecycle που αφορά τον κύκλο ζωής της δικτυακής μας υπηρεσίας. Διαθέτει δυο μεθόδους, την init() που εκτελείται μοναδικά, με την αρχικοποίηση του service, και την destroy() που επίσης εκτελείται μοναδικά με τον τερματισμό. Κατά τη διαδικασία της αρχικοποίησης λοιπόν, θα χρειαστεί να αποθηκεύσουμε σε μια instance variable το servlet context, με κάτι αντίστοιχο:
/**
* Initialize servlet context.
* @param object is the context.
*/
public void init(Object object) {
logger.debug("Initializing ServletEndpointContext...");
// Init context.
servletEndpointContext =
(ServletEndpointContext) object;
logger.debug("Initialized ServletEndpointContext");
}
Τώρα, στις μεθόδους μας που έχουμε εξάγει ως web services, θα αντλήσουμε από το servlet context την ταυτότητα του χρήστη, για να το χρησιμοποιήσουμε σύμφωνα με τις ανάγκες μας.
// ...
if( servletEndpointContext != null ) {
String userId = servletEndpointContext.getUserPrincipal().getName();
}
No comments:
Post a Comment