public Iterator<String> getChallengeRealms() { List<String> realms = new ArrayList<String>(); final Response response = getResponse(); if(response.getStatusCode() == SipServletResponse.SC_UNAUTHORIZED) { WWWAuthenticateHeader authenticateHeader = (WWWAuthenticateHeader) response.getHeader(WWWAuthenticateHeader.NAME); realms.add(authenticateHeader.getRealm()); } else if (response.getStatusCode() == SipServletResponse.SC_PROXY_AUTHENTICATION_REQUIRED) { ProxyAuthenticateHeader authenticateHeader = (ProxyAuthenticateHeader) response.getHeader(ProxyAuthenticateHeader.NAME); realms.add(authenticateHeader.getRealm()); } return realms.iterator(); }
public void generateChallenge(HeaderFactory headerFactory, Response response, String realm ) { try { ProxyAuthenticateHeader proxyAuthenticate = headerFactory .createProxyAuthenticateHeader(DEFAULT_SCHEME); proxyAuthenticate.setParameter("realm", realm); proxyAuthenticate.setParameter("nonce", generateNonce()); proxyAuthenticate.setParameter("opaque", ""); proxyAuthenticate.setParameter("stale", "FALSE"); proxyAuthenticate.setParameter("algorithm", DEFAULT_ALGORITHM); response.setHeader(proxyAuthenticate); } catch (Exception ex) { InternalErrorHandler.handleException(ex); } } /**
String uri = proxyAuthHeader.getParameter("uri"); if(uri == null) uri = this.getRequestURI().toString(); addChallengeResponse(proxyAuthHeader, username, password, uri); getSipSession().getSipSessionSecurity().addCachedAuthInfo(proxyAuthHeader.getRealm(), new AuthInfoEntry(response.getStatusCode(), username, password));