Simple authentication and authorization with a servlet and a filter

Could somebody point me to code example that do simple authentication/authorization using one servlet and one filter? (without Spring, Struts, JSF or any framework)
I’m having a lot of problems with that, apparently, easy task.
These are the rules:
- A simple login page
- Two roles (admin, registered).
- If the user loged is an admin, redirect to his entry page (private/admin/index.jsp).
- If the user loged is of role registered, redirect him to his entry page (private/registered/index.jsp).
- If it’s not a valid user, redirect again to login page.
- Admin’s users cannot go to private/registered/ area.
- Registered users cannot go to private/admin/ area.
- Non authenticated user cannot go to private/ area
Thanks a lot in advance!
Edited by: JLuis on 25-ago-2010 15:27

AccessControl.java:
package com.tlsformacion.security;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.tlsformacion.utils.Log;
public final class AccessControl extends HttpServlet {
     private static final long serialVersionUID = 5741058615983779764L;
     private static final String USERNAME_ATTR = "username";
     private static final String PWD_ATTR = "password";
     private static final String LOGIN_PAGE_ATTR = "login_page";
     private static final String ROL_ATTR = "role";     
     private boolean isAuthentic = false;
     private String role = null;
     private String loginPage = null;
     public AccessControl() {
        super();
     public void init(ServletConfig config) throws ServletException {
          loginPage = config.getInitParameter(LOGIN_PAGE_ATTR);
     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          debug("Inside doGet");
          doAccessControl(request, response);
     protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          debug("Inside doPost");
          doAccessControl(request, response);
     private void doAccessControl (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          debug("Inside doAccessControl");
          doAuthentication(request, response);     
          if (isAuthentic) { //Authentic user
               doAuthorization(request, response);                         
          } else { //User NOT authentic
               doRejection(request, response);
     private void doAuthentication(HttpServletRequest request, HttpServletResponse response) {     
          debug("Inside doAuthentication");                         
        String requestedURI = request.getRequestURI();
        if (requestedURI.contains("/AccessControl")) { //Comes from login page           
             debug("Comes from login page");
              String username = request.getParameter(USERNAME_ATTR);
            String pwd = request.getParameter(PWD_ATTR);   
             role = getRole(username, pwd);
             if (role != null) {
                  isAuthentic = true;
                  request.getSession().setAttribute(ROL_ATTR, role);
        } else { //Doesn't comes from login page
             debug("Doesn't comes from login page");
             if (isInSession(request)) {
                  debug("Rol is in session");               
                  isAuthentic = true;
             } else {
                  debug("Rol is NOT in session");
     private void doAuthorization(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {          
          debug("Inside doAuthorization");
          String requestedURI = request.getRequestURI();
          debug("requestedURI: " + requestedURI);
          if (requestedURI.contains("/AccessControl")) { //Comes from login page                                                                 
               goHomePage(request, response);
          } else if (requestedURI.contains("/private/" + role)) { //Trying to access his private area
               goRequestedPage(request, response);
          } else { //Trying to access other roles private area
               goLoginPage(request, response);
    private void doRejection(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {          
         debug("Inside goRejection");
         role = null;
          goLoginPage(request, response);         
     private void goHomePage(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          debug("Inside goHomePage");     
          String homePage = "private/" + role + "/index.jsp";
          goPage(request, response, homePage);
     private void goLoginPage(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          debug("Inside goLoginPage");
          goPage(request, response, loginPage);
     private void goRequestedPage(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          debug("Inside goRequestedPage");
          String contextPath = request.getContextPath();          
          debug("contextPath: " + contextPath);
          String requestedPage = request.getRequestURI().replace(contextPath + "/", "");
          goPage(request, response, requestedPage);
     private void goPage(HttpServletRequest request, HttpServletResponse response, String page) throws IOException, ServletException {
          debug("Inside goPage ...trying to go to: " + page);
          //Option A
          response.sendRedirect(page);
          //Option B
          //RequestDispatcher requestDispatcher = request.getRequestDispatcher(page);
          //requestDispatcher.forward(request, response);                  
     private boolean isInSession(HttpServletRequest httpRequest) {
         boolean inSession = false;
          role = (String)httpRequest.getSession().getAttribute(ROL_ATTR);
          if (role != null && !role.equals("")) {
               inSession = true;
         return inSession;
    //PENDIENTE: mock method!
    private String getRole(String username, String pwd) {         
         String role = null;
         if (username.equals("admin") && pwd.equals("admin")) {
              role = "administrator";
         } else if (username.equals("regis") && pwd.equals("regis")) {
              role = "registered";
         return role;
    private void debug(String msg) {
         Log.debug(msg);
}Proyect Folder Structure:
WebContent
     login.html
     private
          administrator
               index.jsp
          registered
               index.jspBasically, the problem is that if you try to log as admin/admin (for example) the servlet AccessControl executes infinitely
Edited by: JLuis on 26-ago-2010 8:04

Similar Messages

  • How can I authenticate and authorize with Web Service on ESB ?

    Hello,
    I want to authenticate and authorize client with Web Service published
    by HTTP/SOAP BC.
    Simply if it is an Web Service as J2EE application, I will use
    Basic Authentication with JAX-RPC and Realm.
    But I think that Web Service published by HTTP/SOAP BC is not belong
    to J2EE Application. Threre is no place to describe security role mapping
    (like web.xml).
    JBI 1.0 the section "5.5.1.1.3 Normalized Message Properties" comments
    JAAS Subject is given in the NM Properties. Really in this package
    com.sun.jbi.internal.security.*
    implements JAAS autentication and authorization (at JaasAuthenticator).
    But I can't see how to configure my Service to use this.
    How can I authenticate and authorize with Web Service on ESB ?
    I referred to the resources.
    Mutual Authentication for Web Services: A Live Example
    http://developers.sun.com/prodtech/appserver/reference/techart/mutual_auth.html
    XML and Web Services Security
    http://java.sun.com/j2ee/1.4/docs/tutorial/doc/Security7.html
    JAAS Authentication Tutorial
    http://java.sun.com/j2se/1.4.2/docs/guide/security/jaas/tutorials/GeneralAcnOnly.html
    Thanks,
    Takurou
    - environment ---------------------------------------------
    OpenESB : Project Open ESB Starter Kit
    AppServer : Sun Java Systems Application Server 9.0 PE
    OS : Windows XP
    I don't assume to use SSL (if It's necessary I will try).
    User information is stored in a LDAP Server.
    -----------------------------------------------------------

    Hello,
    I read this resource.
    SecurityDesign
    http://www.glassfishwiki.org/jbiwiki/Wiki.jsp?page=SecurityDesign
    Then I think [non-ssl and ssl/tls and so on] securing by basic authentication is ongoing feature at this time.
    But I can't see well why this page comments 'HTTP over SSL, TLS'.
    HTTP/SOAP Binding Component Overview
    http://download.java.net/general/open-esb/docs/jbi-components/httpsoap-bc.html
    Does BC support only "SSL server authentication" ?
    Doesn't BC support "SSL client authentication" by username/password ?
    Thanks,
    Takurou

  • My Outlook/iCloud calendar invites to others appear to work on my end and sync with my PC and mobile, but when other people "accept" the invite, it will not populate/add in to their calendar. How can i fix this without turning off iCloud?

    My Outlook/iCloud calendar invites to others appear to work on my end and sync with my PC and mobile, but when other people "accept" the invite, it will not populate/add in to their calendar. How can I fix this without turning off iCloud?
    I am at a new office that uses Outlook (not Outlook Exchange) which does not sync with my mobile... I just got iCloud set up on my PC to sync my contacts, calendar, reminders, etc... The sync worked (not without flaws, but the other issues seem solvable... I think), so that i can now see all my appointments on both my phone and on my PC. The problem I am having is that iCloud moved all of my calendar items from Outlook into iCloud calendar and now when I send out meeting/calendar invites the recipients may accept them, but the meeting does not get added to their calendar. This is a huge problem and may mean that i need to turn off iCloud.
    Does anyone know how to fix this?
    Thanks!

    I am replying to my own post here as I seem to have fixed the problem.
    I do have some calendars that are shared. Some of those are shared with users who have time zone support turned on. So i activated time zone support on my iphone, then deleted my icloud subscription. I then signed in to icloud again and voila... problem solved.
    It is a weird one as the other calendar views were always fine and when you opened an event that appeared in the wrong day (on list view), the correct date of the event was shown in the information...
    one more bug in a complicated system I guess

  • I had 3 versions of FF and had to redo the HD and now no version will install says "Can't open output file" i have winddows 7 64 bit 8 GB memory and 1T HD but i have it on my other desktop and laptop with less memory and HD space and works fine

    I had 3 versions of FF and had to redo the HD and now no version will install says "Can't open output file" i have winddows 7 64 bit 8 GB memory and 1T HD but i have it on my other desktop and laptop with less memory and HD space and works fine laptop has windows 7 64 bit and other desktop hook to my 32" tv has win 7 32-bit i lso did clean removal of all versions of FF and did new DLs with screen shots of it DLing, complete of DL and after i got the error again.

    i am posting this as a reply due to it would not allow me to attach screen shots except for this way

  • How do I sync my calendar and contacts with the calendar and contacts on my phone? My laptop is Mac OS X, 10.6.8 and still has MobileMe on it.

    My MacBook Pro is a few years old and I recently got an iPhone 4S. I want to know how I sync my calendar and contacts with the calendar and contacts on my phone? My laptop is Mac OS X, 10.6.8 and still has MobileMe on it. I tried to download iCloud but then I'd have to download and pay for a new OS.
    If anyone could help me with this that would be great.

    Hello Fiona,
    Congratulations on your new iPhone!  You can sync information to your iPhone from your MacBook Pro using the Info tab in iTunes when your iPhone is connected.  Use the steps in the following article:
    iOS: Syncing your data with iTunes
    http://support.apple.com/kb/ht1386
    Thank you for using Apple Support Communities.
    Best,
    Sheila M.

  • Is there any way to sync my lotus notes calendar and contacts with the calendar and contacts on my MacBook Pro?

    Is there any way to sync my lotus notes calendar and contacts with the calendar and contacts on my MacBook Pro?

    You would need to have enabled iCloud on your MBP. Your question indicated you did not.
    Its serial number is useful for establishing ownership should the MBP be recovered. File a police report.

  • How can I exchange my pc created documents on Excel, Word, and PowerPoint with my mac and my Pages, Numbers and Keynote created content with my pc?  I need to create and edit between both.

    How can I exchange my pc created documents on Excel, Word, and PowerPoint with my mac and my Pages, Numbers and Keynote created content with my pc?  I need to create and edit and exchange between both types of operating systems.

    Your Windows system will not open any Pages, Numbers or Keynote documents. No applications exist for Windows that can open those formats. You will need to export your documents in Word, Excel and PowerPoint formats, respectively, before you'll be able to view and edit the documents on your Windows system. The iWork documents can natively open Word, Excel and PP documents, though there are limitations on what can be imported (for instance, Numbers does not support all possible Excel functions). Consult the documentation for the relevant iWork application for details on importing and exporting.
    If you are asking how to get the documents from one system to the other, then there are several ways to do that, including file sharing, using an external drive (hard drive, USB flash drive), or emailing the documents to yourself. Which would be best for your situation I can't say without more details about your usage.
    Regarsd.

  • Hi there i have ipod touch 2nd gen and i am tryna restore it but i get error 21 with orginal fireware and 1601 with custom fireware and when it connected to itunes and i try to boot it up by restoring it white screen with lines thorugh it

    hi there i ahve ipod touch 2nd gen and i am tryna restore it but get error 21 with orginal fireware and 1601 with custom firewarw and when connected it to itunes and i try to boot it by resotring it white screen with lines through it

    Those errors are covered here:
    http://support.apple.com/kb/TS3694

  • I need help integrating Microsoft Office, Outlook and Calendar with my job and is it possible

    Ok guys I am new to the iphone 4s. I just dumped my Blackberry after 10 years. I need help integrating Microsoft Office, Outlook and Calendar with my job and is it possible? Also I need it to automatically push email and appointments to my phone? I will buy any app just need to know which is best for work environment. Here is what I am thinking about doing. http://www.groovypost.com/howto/apple/sync-iphone-or-ipod-touch-calendar-and-con tacts-with-google/ Is this the best way? For personal use I am using paid G whiz app

    I use Google Calendar Sync to sync my work Outlook calendar to a gmail account, then sync that to my iPhone.  It works well for me for the past couple of years.
    As far as mail itself, just ask your it folks for settings for remote access to your exchange account, and then set it up on the phone.
    As far as working with Office docs, to be able to actually edit them and such, look in the app store for DocsToGo or QuickOffice - they both are good but each has it's pros and cons, so on balance it's down to mere preference i think.

  • Cleaned files and apps with "app cleaner" and now MacBook Air turns off during start up. What happens? What can I do? Please help

    Cleaned files and apps with "app cleaner" and now MacBook Air turns off during start up. What happens? What can I do? Please help

    The "app cleaner" managed to do bad things to the file system so that it is unable to boot any longer.
    This is the primary reason I always recommend that any of those so called "cleanup" apps never be used. They do more harm then good.
    Try a safe boot by holding down the shifgr key when you hear the boot chime. Maybe that can fix the damage.
    Let us know what happens.
    Allan

  • Authentication & Authorization with SSO, JAAS and Database Tables mix

    Hi,
    I'm looking for how manage Authentication & Authorization in a J2EE ADF+Struts+JSP application.
    I'm interested in use SSO for authentication (I just did it programatically & dynamically already), and now I would like to could define authorization using database tables with users, groups, profiles, individual permissions, ..., (maitanined dynamically by web application admin) throught JAZN (JAAS or however is said) but not statically defining roles, groups, users, ... in jazn xml files.
    I saw that exists the possibility to create a custom DataSourceUserManager class to manage all this, and this gave me the idea that this could be possible to do (I was thinking in make a custom Authorization API over my application tables, without JAZN) but what is better that use and extended and consolidated aprox like JAZN.
    Anybody could tell me if my idea could be possible, and realizable, and maybe give me some orientation to build this approach.
    A lot of thanks in advanced.
    And sorry, excuse my so bad english.
    See you.

    Marcel,
    Originally the idea was to create a post to only explain how to do authentication using a Servlet filter. However,
    I have recently added code to the JHeadstart runtime and generators to enable both JAAS and 'Custom' authentication AND authorization in generated applications. Therefore, this post will be made after we have released the next patch release, as it will depend on these code changes.
    We currently plan to have the patch release available sometime in the second half of May.
    Kind regards,
    Peter Ebell
    JHeadstart Team

  • Extending EP6 with own Servlet and URL /irj/MyServlet

    Hello,
    I am working on a migration of a Servlet from IBM WebSphere Portal 5.0 to SAP EP6.0. The Servlet is an extension to the Portal and is manually deployd and not with an ear or war file.
    Is it possible to extend the portal with my own servlet accessible with "/irj/MyServlet"?
    I tried to copy the jars to one of the directories
    server0\apps\sap.com\irj\servlet_jsp\irj\root\WEB-INF\lib
    server0\apps\sap.com\irj\servlet_jsp\irj\root\WEB-INF\portal\lib
    server0\apps\sap.com\irj\servlet_jsp\irj\root\WEB-INF\portal\system\lib
    and added my Servlet to the web deployment descripter
    server0\apps\sap.com\irj\servlet_jsp\irj\root\WEB-INF\web.xml
         <servlet>
              <servlet-name>MyServlet</servlet-name>
              <display-name>MyServlet</display-name>
              <servlet-class>com.mycompany.MyServlet</servlet-class>
              <init-param>
                   <param-name>ServletMode</param-name>
                   <param-value>normal</param-value>
              </init-param>
            <load-on-startup>1</load-on-startup>
         </servlet>
          <servlet-mapping>
             <servlet-name>MyServlet</servlet-name>
             <url-pattern>/MyServlet/*</url-pattern>
          </servlet-mapping>
    I also tried to modify the jar file in the same manner
    server0\apps\sap.com\irj\servlet_jsp\irj\epbc.war
    All this does not work.
    Does somebody has experience with extending the SAP EP6 portal?
    Greetings, Bernd.

    Maybe its  possible, but it is not recommended to do so.
    However it does not make to much sense.
    Just run your servlet as a portal compoent with an entry as native-Servlet in the pc descriptor.
    Thats a 5 minute trip.

  • Copy friend's app and authorize with my account?

    For example.
    i want to play Fifa14. I buy the Fifa but but not download it because my speed is very low.
    My friend have Fifa14. Can i just copy his app and authorize the app with my account (since i have bought the app earlier)?

    No. It needs to be downloaded when logged into the iTunes Store with your Apple ID.
    (91246)

  • Help With Integrating Servlet and JSP Page?

    Hello There
    --i made jsp page that contain name and description fields and add button
    --and i made servlet that contain the code to insert name and description in the database
    --and i want to make that when the user hit the add button
    -->the entered name and description is sent to the servlet
    and the servlet sent them to database?
    here's what i 've done:
    the jsp code:
    <html:html locale="true">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>
            Categories Page
           </title>
            <html:base/>
        </head>
        <body style="background-color: white">
        <form action="jpage.jsp" method="get">
            <h1>
                <center>
    categories Operations
                </center>
            </h1>
            <h3>
                 <label>Name</label>
            <input type="text" name="name" value="" size="10" />
                 <label>Description</label>
             <input type="text" name="description" value="" size="10" />
             <input type="submit" value="Add" name="button" />
           </h3>
       </form>
        </body>
    </html:html>the servlet code:
    import java.io.*;
    import java.util.Enumeration;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.sql.*;
    import java.net.*;
    class NewServlet1 extends HttpServlet{
         Connection conn;
         private ServletConfig config;
    public void init(ServletConfig config)
      throws ServletException{
         this.config=config;
    public void service (HttpServletRequest req, HttpServletResponse res)
    throws ServletException, IOException {
       HttpSession session = req.getSession(true);
       res.setContentType("text/html");
    try{
         Class.forName("com.mysql.jdbc.Driver");
       conn = DriverManager.getConnection("jdbc:mysql://localhost/struts", "root", "");
         PreparedStatement ps;
       ps = conn.prepareStatement ("INSERT INTO categories (Name, Description) VALUES(?,?)");
          ps.setString (1, "aa");
          ps.setString (3, "bb");
          ps.executeUpdate();
          ps.close();
          conn.close();
      }catch(Exception e){ e.getMessage();}
      public void destroy(){}
    }

    The JSP Code:
    <html:html locale="true">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>
            Categories Page
           </title>
            <html:base/>
        </head>
        <body style="background-color: white">
        <form action="actionServlet.do?action=Additem" method="*post*">
            <h1>
                <center>
    categories Operations
                </center>
            </h1>
            <h3>
                 <label>Name</label>
            <input type="text" name="name" value="" size="10" />
                 <label>Description</label>
             <input type="text" name="description" value="" size="10" />
             <input type="button" value="Submit">
           </h3>
       </form>
        </body>
    </html:html>The Servlet Code:
    import java.io.*;
    import java.util.Enumeration;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.sql.*;
    import java.net.*;
    public class NewServlet1 extends HttpServlet implements SingleThreadModel {
        public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException,IOException {
            doPost(request,response);
        public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException,IOException {
              String action = request.getParameter("action"); // action = "Additem"
              if (action.equals("Additem")) {
                   String name = request.getParameter("name");
                   String description = request.getParameter("description");
                         RequestDispatcher reqDisp = null;
                   try{
                  Connection conn;
                  PreparedStatement ps;
         Class.forName("com.mysql.jdbc.Driver");
       conn = DriverManager.getConnection("jdbc:mysql://localhost/struts", "root", "");
       ps = conn.prepareStatement ("INSERT INTO categories (Name, Description) VALUES(?,?)");
          ps.setString (1, name);
          ps.setString (3, description);
          ps.executeUpdate();
          ps.close();
          conn.close();
          reqDisp= request.getRequestDispatcher("./index.jsp");
          reqDisp.forward(request, response);
                   catch (Exception ex){
                        System.out.println("Error: "+ ex);
    }The web.xml code:
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
        <servlet>
            <servlet-name>action</servlet-name>
            <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
            <init-param>
                <param-name>config</param-name>
                <param-value>/WEB-INF/struts-config.xml</param-value>
            </init-param>
            <init-param>
                <param-name>debug</param-name>
                <param-value>2</param-value>
            </init-param>
            <init-param>
                <param-name>detail</param-name>
                <param-value>2</param-value>
            </init-param>
            <load-on-startup>2</load-on-startup>
            </servlet>
        <servlet>
            <servlet-name>NewServlet1</servlet-name>
            <servlet-class>NewServlet1</servlet-class>
        </servlet>
        <servlet-mapping>
            <servlet-name>action</servlet-name>
            <url-pattern>*.do</url-pattern>
        </servlet-mapping>
        <servlet-mapping>
            <servlet-name>NewServlet1</servlet-name>
            <url-pattern>/NewServlet1</url-pattern>
        </servlet-mapping>
        <session-config>
            <session-timeout>
                30
            </session-timeout>
        </session-config>
        <welcome-file-list>
            <welcome-file>index.jsp</welcome-file>
            </welcome-file-list>
            <servlet>
         <servlet-name>actionServlet</servlet-name>
         <servlet-class>com.test.servlet.NewServlet1</servlet-class>
    </servlet>
    <servlet-mapping>
         <servlet-name>actionServlet</servlet-name>
         <url-pattern>*.do</url-pattern>
    </servlet-mapping>
        </web-app>

  • Issues with mobility and autodiscovery with Lync 2013 and IIS/ARR

    Hi all,
    this is my last resort after days and days searching a solution for this problem... unsuccessfully.
    All works fine unless the autodiscovery service with external users and the mobility service for both internal and external ones.
    I deployed a Standard Edition Lync Server 2013 with:
    a consolidated Frontend server in LAN
    an Archiving and Monitoring server in LAN
    an Edge server in DMZ with 2 NICs (one in DMZ network and one in LAN)
    a IIS/ARR 2.5 reverse proxy in DMZ with 2 NICs (one in DMZ network and one in LAN)
    All these roles are on Windows Server 2012 R2.
    No split-DNS is deployed since I have different domains for internal and external. In any case I used the pinpoint DNS tip to resolve some records internally (I followed this guide http://tsoorad.blogspot.ch/2012/10/lync-server-dns-pinpoint-zones.html)
    Here DNS records into internal domain:
    A-record for meet.domain-ext.com points to Frontend server local IP
    A-record for dialin.domain-ext.com points to Frontend server local IP
    A-record for lyncdiscoverinternal.domain-ext.com points to Frontend server IP
    A-record for lyncwebexternal.domain-ext.com points to Frontend sever local IP
    A-record for autodiscover.domain-ext.com points to Exchange server local IP
    Here DNS records into external domain:
    CNAME-record for lyncdiscover.domain-ext.com points to lyncwebexternal.domain-ext.com
    CNAME-record for sipexternal.domain-ext.com points to lyncwebexternal.domain-ext.com
    A-record for meet.domain-ext.com points to Reverse Proxy public IP
    A-record for dialin.domain-ext.com points to Reverse Proxy public IP
    A-record for lyncwebexternal.domain-ext.com points to Reverse Proxy public IP
    I installed and configured IIS/ARR 2.5 with KB2732764 and KB2785586 on Reverse Proxy following the NextHop guide. The local IP address of external NIC on Reverse Proxy is NATTED by a Cisco ASA firewall with public IP address and only 80/443
    ports are permitted.
    The problems occurs when I try to connect whit my Lync 2013 APP on iPad using autodiscovery service, both internally and externally. After some seconds the APP shows the message “Cannot connect to the server because it could be busy or
    temporarily unavailable. Retry.” When I used the IIS/ARR 3.0 the problem looked like an authentication issue, then I came back to ISS/ARR 2.5 version with its KB. Now I cannot understand what is the cause about logfail.
    The same behavior occurs with Android Lync 2013 APP and Windows Phone 8 APP.
    Moreover my Lync 2013 client on Windows 7 can connect internally with autodiscovery settings but it cannot do it externally.
    I'm a bit confused because I cannot understand if the problem is about external webservice of Frontend server or about Reverse Proxy configuration or about Lync Control Panel configuration.
    Here is an extracted of iPad Lync 2013 log (sorry if it’s a bit long).
    Any helps are very appreciated, thansk a lot!
    </SentRequest>
    2013-12-20
    11:33:00.781 Lync[563:3a71018c] INFO APPLICATION
    CUrlRedirectAndTrustResolver.cpp/201:CUrlRedirectAndTrustResolver::processUrl
    called with url = http://lyncdiscover.domain-ext.com/, hopCount = 0, maxHops =
    10
    2013-12-20
    11:33:00.781 Lync[563:6d00000] INFO UTILITIES
    CHttpStreamPool.cpp/409:Allocating stream 0x11cbe40 for url -
    https://lyncdiscover.domain-ext.com/ with persistent id as 6
    2013-12-20
    11:33:00.782 Lync[563:3a71018c] INFO TRANSPORT CTransportThread.cpp/131:Added
    Request(UcwaAutoDiscoveryRequest) to Request Processor queue
    2013-12-20
    11:33:00.782 Lync[563:6d00000] VERBOSE TRANSPORT
    CHttpProxyHelper.cpp/436:CHttpProxyHelper::discoverProxy : No proxy found for
    url https://lyncdiscover.domain-ext.com/?sipuri=sip:[email protected].
    Sending over direct connection.
    2013-12-20
    11:33:00.782 Lync[563:3a71018c] INFO APPLICATION
    CTransportRequestRetrialQueue.cpp/385:Submitting new req.
    UrlTrustResolver(0x1201358)
    2013-12-20
    11:33:00.782 Lync[563:3a71018c] INFO APPLICATION
    CUcwaAutoDiscoveryService.cpp/1783:Successfully started the GetUserUrlOperation
    request for http://lyncdiscover.domain-ext.com/?sipuri=sip:[email protected]
    2013-12-20
    11:33:00.796 Lync[563:6d00000] INFO TRANSPORT CTransportThread.cpp/343:Sent
    Request(UcwaAutoDiscoveryRequest) to Request Processor
    2013-12-20
    11:33:00.796 Lync[563:6d00000] WARNING TRANSPORT
    CCredentialManager.cpp/317:CCredentialManager::getSpecificCredential returning
    NULL credential for serviceId (4) type (1)!
    2013-12-20
    11:33:00.797 Lync[563:6d00000] INFO TRANSPORT
    TransportUtilityFunctions.cpp/631:<SentRequest>
    GET
    http://lyncdiscover.domain-ext.com/
    Request Id:
    0x1201358
    HttpHeader:Accept
    application/vnd.microsoft.rtc.autodiscover+xml;v=1
    </SentRequest>
    2013-12-20
    11:33:00.797 Lync[563:6d00000] INFO UTILITIES
    CHttpStreamPool.cpp/409:Allocating stream 0x12028f0 for url -
    http://lyncdiscover.domain-ext.com/ with persistent id as 7
    2013-12-20
    11:33:00.798 Lync[563:6d00000] VERBOSE TRANSPORT
    CHttpProxyHelper.cpp/436:CHttpProxyHelper::discoverProxy : No proxy found for
    url http://lyncdiscover.domain-ext.com/. Sending over direct connection.
    2013-12-20
    11:33:00.798 Lync[563:6d00000] INFO TRANSPORT CHttpStreamPool.cpp/556:Not
    setting TLS as the url(http://lyncdiscover.domain-ext.com/) is not https
    2013-12-20
    11:33:00.812 Lync[563:3a71018c] INFO UI CMConversationCommon.mm/43:not signed
    in
    2013-12-20
    11:33:00.812 Lync[563:3a71018c] INFO UI CMConversationCommon.mm/43:not signed
    in
    2013-12-20
    11:33:00.812 Lync[563:3a71018c] INFO UI CMConversationCommon.mm/43:not signed
    in
    2013-12-20
    11:33:00.813 Lync[563:3a71018c] INFO UI CMConversationCommon.mm/43:not signed
    in
    2013-12-20
    11:33:00.813 Lync[563:3a71018c] INFO UI CMConversationCommon.mm/43:not signed
    in
    2013-12-20
    11:33:04.104 Lync[563:6d00000] INFO UTILITIES CHttpConnection.cpp/577:Received
    kCFStreamEventEndEncountered (UcwaAutoDiscoveryRequest)isHeadersAvailable =
    true  responseHeadersHandle = 12c5d70
    2013-12-20
    11:33:04.105 Lync[563:6d00000] INFO UTILITIES CHttpConnection.cpp/628:Response
    status = 200 for request UcwaAutoDiscoveryRequest
    2013-12-20
    11:33:04.105 Lync[563:6d00000] INFO UTILITIES
    CHttpStreamPool.cpp/455:Scheduling stream 0x12028f0 for release.
    2013-12-20
    11:33:04.105 Lync[563:6d00000] INFO TRANSPORT
    CHttpRequestProcessor.cpp/173:Received response of
    request(UcwaAutoDiscoveryRequest) with status = 0x0
    2013-12-20
    11:33:04.106 Lync[563:6d00000] INFO TRANSPORT
    TransportUtilityFunctions.cpp/925:<ReceivedResponse>
    GET
    http://lyncdiscover.domain-ext.com/
    Request Id:
    0x1201358
    HttpHeader:Cache-Control
    no-cache
    HttpHeader:Content-Length
    1076
    HttpHeader:Content-Type
    application/vnd.microsoft.rtc.autodiscover+xml; v=1
    HttpHeader:Date
    Fri, 20 Dec 2013 10:33:02 GMT
    HttpHeader:Expires
    -1
    HttpHeader:Pragma
    no-cache
    HttpHeader:Server
    Microsoft-IIS/8.5
    HttpHeader:StatusCode
    200
    HttpHeader:X-AspNet-Version
    4.0.30319
    HttpHeader:X-Content-Type-Options
    nosniff
    HttpHeader:X-MS-Server-Fqdn
    frontend-lync.domain-int.com
    HttpHeader:X-Powered-By
    ASP.NET, ARR/2.5
    Ôªø<?xml
    version="1.0" encoding="utf-8"?><AutodiscoverResponse
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    AccessLocation="Internal"><Root><Link
    token="Domain" href="https://frontend-lync.domain-int.com/Autodiscover/AutodiscoverService.svc/root/domain?originalDomain=domain-ext.com"
    /><Link token="User" href="https://frontend-lync.domain-int.com/Autodiscover/AutodiscoverService.svc/root/user?originalDomain=domain-ext.com"
    /><Link token="Self" href="https://frontend-lync.domain-int.com/Autodiscover/AutodiscoverService.svc/root?originalDomain=domain-ext.com"
    /><Link token="OAuth" href="https://frontend-lync.domain-int.com/Autodiscover/AutodiscoverService.svc/root/oauth/user?originalDomain=domain-ext.com"
    /><Link token="External/XFrame"
    href="https://lyncwebexternal.domain-ext.com/Autodiscover/XFrame/XFrame.html"
    /><Link token="Internal/XFrame" href="https://frontend-lync.domain-int.com/Autodiscover/XFrame/XFrame.html"
    /><Link token="XFrame" href="https://lyncwebexternal.domain-ext.com/Autodiscover/XFrame/XFrame.html"
    /></Root></AutodiscoverResponse>
    </ReceivedResponse>
    2013-12-20
    11:33:04.108 Lync[563:6d00000] INFO TRANSPORT
    CUcwaAutoDiscoveryResponse.cpp/112:location value is internal
    2013-12-20
    11:33:04.108 Lync[563:6d00000] INFO TRANSPORT
    CUcwaAutoDiscoveryResponse.cpp/195:User url is https://frontend-lync.domain-int.com/autodiscover/autodiscoverservice.svc/root/user?originaldomain=domain-ext.com
    2013-12-20
    11:33:04.109 Lync[563:6d00000] INFO TRANSPORT
    CHttpRequestProcessor.cpp/266:Sending event to main thread for
    request(0x1201358)
    2013-12-20
    11:33:04.109 Lync[563:3a71018c] INFO APPLICATION
    CTransportRequestRetrialQueue.cpp/822:Req. completed, Stopping timer.
    2013-12-20
    11:33:04.109 Lync[563:3a71018c] INFO APPLICATION
    CUrlRedirectAndTrustResolver.cpp/610:UrlRedirectAndTrustResolver complete with
    url = http://lyncdiscover.domain-ext.com/, Hops = 1, status = S_OK (S0-0-0)
    2013-12-20
    11:33:04.109 Lync[563:3a71018c] INFO APPLICATION
    CTransportRequestRetrialQueue.cpp/725:Response received for req.
    UrlTrustResolver(0x1201358): S_OK (S0-0-0) (Success); Done with req.; Stopping
    resend timer
    2013-12-20
    11:33:04.110 Lync[563:3a71018c] INFO APPLICATION
    CUcwaAutoDiscoveryGetUserUrlOperation.cpp/393:CUcwaAutoDiscoverGetUserUrlOperation::onEvent
    received.  Status = S_OK (S0-0-0), url =
    http://lyncdiscover.domain-ext.com/
    2013-12-20
    11:33:04.110 Lync[563:3a71018c] INFO APPLICATION
    CUcwaAutoDiscoveryGetUserUrlOperation.cpp/449:Received a root response
    2013-12-20
    11:33:04.110 Lync[563:3a71018c] INFO APPLICATION
    CUcwaAutoDiscoveryGetUserUrlOperation.cpp/456:Running trust check on user url.
    url = https://frontend-lync.domain-int.com/autodiscover/autodiscoverservice.svc/root/user?originaldomain=domain-ext.com
    2013-12-20
    11:33:04.110 Lync[563:3a71018c] INFO APPLICATION
    CUrlRedirectAndTrustResolver.cpp/77:Starting CUrlRedirectAndTrustResolver with
    url = https://frontend-lync.domain-int.com/autodiscover/autodiscoverservice.svc/root/user?originaldomain=domain-ext.com,
    maxHops = 1
    2013-12-20
    11:33:04.110 Lync[563:3a71018c] INFO APPLICATION
    CUrlRedirectAndTrustResolver.cpp/201:CUrlRedirectAndTrustResolver::processUrl
    called with url = https://frontend-lync.domain-int.com/autodiscover/autodiscoverservice.svc/root/user,
    hopCount = 0, maxHops = 1
    2013-12-20
    11:33:04.111 Lync[563:3a71018c] INFO TRANSPORT CTransportThread.cpp/131:Added
    Request(UcwaAutoDiscoveryRequest) to Request Processor queue
    2013-12-20
    11:33:04.111 Lync[563:3a71018c] INFO APPLICATION
    CTransportRequestRetrialQueue.cpp/385:Submitting new req.
    UrlTrustResolver(0x11d4d38)
    2013-12-20
    11:33:04.111 Lync[563:6d00000] INFO TRANSPORT CTransportThread.cpp/343:Sent
    Request(UcwaAutoDiscoveryRequest) to Request Processor
    2013-12-20
    11:33:04.111 Lync[563:6d00000] WARNING TRANSPORT
    CCredentialManager.cpp/317:CCredentialManager::getSpecificCredential returning
    NULL credential for serviceId (4) type (1)!
    2013-12-20
    11:33:04.112 Lync[563:6d00000] INFO TRANSPORT
    TransportUtilityFunctions.cpp/631:<SentRequest>
    GET
    https://frontend-lync.domain-int.com/autodiscover/autodiscoverservice.svc/root/user
    Request Id:
    0x11d4d38
    HttpHeader:Accept
    application/vnd.microsoft.rtc.autodiscover+xml;v=1
    </SentRequest>
    2013-12-20
    11:33:04.112 Lync[563:6d00000] INFO UTILITIES
    CHttpStreamPool.cpp/409:Allocating stream 0x125fa90 for url - https://frontend-lync.domain-int.com/autodiscover/autodiscoverservice.svc/root/user
    with persistent id as 7
    2013-12-20
    11:33:04.112 Lync[563:6d00000] VERBOSE TRANSPORT
    CHttpProxyHelper.cpp/436:CHttpProxyHelper::discoverProxy : No proxy found for
    url https://frontend-lync.domain-int.com/autodiscover/autodiscoverservice.svc/root/user.
    Sending over direct connection.
    2013-12-20
    11:33:04.113 Lync[563:6d00000] INFO UTILITIES CHttpStreamPool.cpp/609:Releasing
    stream 0x12028f0.
    2013-12-20
    11:33:04.261 Lync[563:6d00000] INFO UTILITIES CHttpConnection.cpp/577:Received
    kCFStreamEventEndEncountered (UcwaAutoDiscoveryRequest)isHeadersAvailable =
    true  responseHeadersHandle = 11cfbd0
    2013-12-20
    11:33:04.262 Lync[563:6d00000] INFO UTILITIES CHttpConnection.cpp/628:Response
    status = 200 for request UcwaAutoDiscoveryRequest
    2013-12-20
    11:33:04.262 Lync[563:6d00000] INFO UTILITIES
    CHttpStreamPool.cpp/455:Scheduling stream 0x11cbe40 for release.
    2013-12-20
    11:33:04.263 Lync[563:6d00000] INFO TRANSPORT
    CHttpRequestProcessor.cpp/173:Received response of
    request(UcwaAutoDiscoveryRequest) with status = 0x0
    2013-12-20
    11:33:04.263 Lync[563:6d00000] INFO TRANSPORT
    TransportUtilityFunctions.cpp/925:<ReceivedResponse>
    GET
    https://lyncdiscover.domain-ext.com/?sipuri=sip:[email protected]
    Request Id:
    0x12450d8
    HttpHeader:Cache-Control
    no-cache
    HttpHeader:Content-Length
    1076
    HttpHeader:Content-Type
    application/vnd.microsoft.rtc.autodiscover+xml; v=1
    HttpHeader:Date
    Fri, 20 Dec 2013 10:33:02 GMT
    HttpHeader:Expires
    -1
    HttpHeader:Pragma
    no-cache
    HttpHeader:Server
    Microsoft-IIS/8.5
    HttpHeader:StatusCode
    200
    HttpHeader:X-AspNet-Version
    4.0.30319
    HttpHeader:X-Content-Type-Options
    nosniff
    HttpHeader:X-MS-Server-Fqdn
    frontend-lync.domain-int.com
    HttpHeader:X-Powered-By
    ASP.NET, ARR/2.5
    Ôªø<?xml
    version="1.0" encoding="utf-8"?><AutodiscoverResponse
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    AccessLocation="Internal"><Root><Link
    token="Domain" href="https://frontend-lync.domain-int.com/Autodiscover/AutodiscoverService.svc/root/domain?originalDomain=domain-ext.com"
    /><Link token="User" href="https://frontend-lync.domain-int.com/Autodiscover/AutodiscoverService.svc/root/user?originalDomain=domain-ext.com"
    /><Link token="Self" href="https://frontend-lync.domain-int.com/Autodiscover/AutodiscoverService.svc/root?originalDomain=domain-ext.com"
    /><Link token="OAuth" href="https://frontend-lync.domain-int.com/Autodiscover/AutodiscoverService.svc/root/oauth/user?originalDomain=domain-ext.com"
    /><Link token="External/XFrame"
    href="https://lyncwebexternal.domain-ext.com/Autodiscover/XFrame/XFrame.html"
    /><Link token="Internal/XFrame" href="https://frontend-lync.domain-int.com/Autodiscover/XFrame/XFrame.html"
    /><Link token="XFrame" href="https://lyncwebexternal.domain-ext.com/Autodiscover/XFrame/XFrame.html"
    /></Root></AutodiscoverResponse>
    </ReceivedResponse>
    2013-12-20
    11:33:04.264 Lync[563:6d00000] INFO TRANSPORT
    CUcwaAutoDiscoveryResponse.cpp/112:location value is internal
    2013-12-20
    11:33:04.265 Lync[563:6d00000] INFO TRANSPORT
    CUcwaAutoDiscoveryResponse.cpp/195:User url is https://frontend-lync.domain-int.com/autodiscover/autodiscoverservice.svc/root/user?originaldomain=domain-ext.com
    2013-12-20
    11:33:04.265 Lync[563:6d00000] INFO TRANSPORT
    CHttpRequestProcessor.cpp/266:Sending event to main thread for
    request(0x12450d8)
    2013-12-20
    11:33:04.266 Lync[563:3a71018c] INFO APPLICATION CTransportRequestRetrialQueue.cpp/822:Req.
    completed, Stopping timer.
    2013-12-20
    11:33:04.266 Lync[563:3a71018c] INFO APPLICATION
    CUcwaAutoDiscoveryGetUserUrlOperation.cpp/290:Received a root response
    2013-12-20
    11:33:04.266 Lync[563:3a71018c] INFO APPLICATION CUcwaAutoDiscoveryGetUserUrlOperation.cpp/224:UcwaAutoDiscoveryGetUserUrlOperation
    completed with url = https://lyncdiscover.domain-ext.com/?sipuri=sip:[email protected],
    userUrl = https://frontend-lync.domain-int.com/autodiscover/autodiscoverservice.svc/root/user?originaldomain=domain-ext.com,
    status = S_OK (S0-0-0)
    2013-12-20
    11:33:04.266 Lync[563:3a71018c] INFO APPLICATION
    CTransportRequestRetrialQueue.cpp/725:Response received for req.
    GET-UnAuthenticatedGet(0x12450d8): S_OK (S0-0-0) (Success); Done with req.; Stopping
    resend timer
    2013-12-20
    11:33:04.267 Lync[563:3a71018c] INFO APPLICATION
    CTransportRequestRetrialQueue.cpp/399:Cancelling all requests
    2013-12-20
    11:33:04.267 Lync[563:3a71018c] INFO APPLICATION
    CTransportRequestRetrialQueue.cpp/409:Cancelling request: 0x11d4d38
    2013-12-20
    11:33:04.267 Lync[563:3a71018c] INFO TRANSPORT CSessionBase.hxx/158:Cancelling
    request: 0x11d4d38
    2013-12-20
    11:33:04.267 Lync[563:3a71018c] INFO TRANSPORT CTransportThread.cpp/163:Added
    Request(UcwaAutoDiscoveryRequest) to Request Processor queue
    2013-12-20
    11:33:04.267 Lync[563:3a71018c] INFO APPLICATION
    CUrlRedirectAndTrustResolver.cpp/610:UrlRedirectAndTrustResolver complete with
    url = https://frontend-lync.domain-int.com/autodiscover/autodiscoverservice.svc/root/user,
    Hops = 1, status = W_Cancelled (W0-0-6)
    2013-12-20
    11:33:04.267 Lync[563:3a71018c] INFO APPLICATION
    CUcwaAutoDiscoveryGetUserUrlOperation.cpp/224:UcwaAutoDiscoveryGetUserUrlOperation
    completed with url = http://lyncdiscover.domain-ext.com/?sipuri=sip:[email protected],
    userUrl = , status = W_Cancelled (W0-0-6)
    2013-12-20
    11:33:04.268 Lync[563:6d00000] INFO TRANSPORT CTransportThread.cpp/343:Sent
    Request(UcwaAutoDiscoveryRequest) to Request Processor
    2013-12-20
    11:33:04.268 Lync[563:3a71018c] INFO TRANSPORT CCredentialManager.cpp/176:getSpecificCredential
    for serviceId(1) returning: credType (1) signInName ([email protected])
    domain () username (mattia.spagnoli) password.empty() (0) certificate.isValid()
    (0) privateKey.empty() (1) compatibleServiceIds(1)
    2013-12-20
    11:33:04.268 Lync[563:3a71018c] INFO TRANSPORT
    CMetaDataManager.cpp/403:Received a request to get the meta data of type 0 for
    url https://frontend-lync.domain-int.com/autodiscover/autodiscoverservice.svc/root/user?originaldomain=domain-ext.com
    2013-12-20
    11:33:04.269 Lync[563:3a71018c] INFO TRANSPORT CMetaDataManager.cpp/467:Sending
    Unauthenticated get to get the web-ticket url
    2013-12-20
    11:33:04.269 Lync[563:3a71018c] INFO TRANSPORT CTransportThread.cpp/131:Added
    Request() to Request Processor queue
    2013-12-20
    11:33:04.269 Lync[563:3a71018c] INFO TRANSPORT
    CAuthenticationResolver.cpp/109:Waiting on Meta Data from https://frontend-lync.domain-int.com/autodiscover/autodiscoverservice.svc/root/user?originaldomain=domain-ext.com
    2013-12-20
    11:33:04.269 Lync[563:62d4000] INFO TRANSPORT CTransportThread.cpp/343:Sent
    Request() to Request Processor
    2013-12-20
    11:33:04.270 Lync[563:3a71018c] INFO APPLICATION
    CTransportRequestRetrialQueue.cpp/385:Submitting new req.
    GET-AuthenticatedUserGetRequest(0x1201ab8)
    2013-12-20
    11:33:04.270 Lync[563:62d4000] WARNING TRANSPORT
    CCredentialManager.cpp/317:CCredentialManager::getSpecificCredential returning
    NULL credential for serviceId (4) type (1)!
    2013-12-20
    11:33:04.270 Lync[563:3a71018c] INFO APPLICATION
    CUcwaAutoDiscoveryService.cpp/1189:Submitting Authenticated AutoDiscovery
    request to https://frontend-lync.domain-int.com/autodiscover/autodiscoverservice.svc/root/user?originaldomain=domain-ext.com
    2013-12-20
    11:33:04.270 Lync[563:6d00000] INFO UTILITIES
    CHttpStreamPool.cpp/455:Scheduling stream 0x125fa90 for release.
    2013-12-20
    11:33:04.271 Lync[563:62d4000] INFO TRANSPORT
    TransportUtilityFunctions.cpp/631:<SentRequest>
    GET
    https://frontend-lync.domain-int.com/autodiscover/autodiscoverservice.svc/root/user?originaldomain=domain-ext.com
    Request Id:
    0x1206198
    HttpHeader:Accept
    HttpHeader:X-MS-WebTicket
    xxxxxxxxxx
    </SentRequest>
    2013-12-20
    11:33:04.271 Lync[563:3a71018c] INFO APPLICATION
    CUcwaAutoDiscoveryService.cpp/1662:Ignoring GetUserUrlOperation event as
    current state is 6
    2013-12-20
    11:33:04.271 Lync[563:62d4000] INFO UTILITIES
    CHttpStreamPool.cpp/409:Allocating stream 0x11c0a40 for url - https://frontend-lync.domain-int.com/autodiscover/autodiscoverservice.svc/root/user
    with persistent id as 15
    2013-12-20
    11:33:04.271 Lync[563:3a71018c] INFO APPLICATION CUcwaAutoDiscoveryService.cpp/1664:Request
    url was http://lyncdiscover.domain-ext.com/?sipuri=sip:[email protected]
    2013-12-20
    11:33:04.272 Lync[563:62d4000] VERBOSE TRANSPORT
    CHttpProxyHelper.cpp/436:CHttpProxyHelper::discoverProxy : No proxy found for
    url https://frontend-lync.domain-int.com/autodiscover/autodiscoverservice.svc/root/user?originaldomain=domain-ext.com.
    Sending over direct connection.
    2013-12-20
    11:33:20.621 Lync[563:3a71018c] INFO UTILITIES
    CNetworkMonitor.cpp/217:Reachabilility Flags IsWWAN(0):Reachable(0):TransientConnection(0):ConnectionRequired(0):ConnectionOnTraffic(0):InterventionRequired(0):ConnectionOnDemand(0):IsLocalAddress(0):IsDirect(0)
    2013-12-20
    11:33:20.623 Lync[563:3a71018c] INFO UTILITIES CNetworkMonitor.cpp/186:Updated
    networkAvailableToConnect(CellularDataNetwork) -> NoNetwork,
    isInAirplaneMode(0) -> 1
    2013-12-20
    11:33:20.623 Lync[563:3a71018c] INFO APPLICATION
    CUcmpConversationsManager.cpp/4091:CUcmpConversationsManager::canDoVideoBasedOnNetworkAndPolicy
    returns false because RequestWiFiForAudio or RequestWifiForVideo is true and
    current network : is not WiFi
    2013-12-20
    11:33:20.623 Lync[563:3a71018c] INFO APPLICATION
    CUcmpConversationsManager.cpp/1672:CUcmpConversationsManager::queryCapability
    on StartP2PVideoCall returns false because
    canDoVideoBasedOnNetworkAndPolicy 
    returned false
    2013-12-20
    11:33:20.904 Lync[563:3a71018c] INFO UTILITIES
    CNetworkMonitor.cpp/217:Reachabilility Flags
    IsWWAN(1):Reachable(1):TransientConnection(1):ConnectionRequired(0):ConnectionOnTraffic(0):InterventionRequired(0):ConnectionOnDemand(0):IsLocalAddress(1):IsDirect(0)
    2013-12-20
    11:33:20.905 Lync[563:3a71018c] INFO UTILITIES CNetworkMonitor.cpp/186:Updated
    networkAvailableToConnect(NoNetwork) -> CellularDataNetwork,
    isInAirplaneMode(1) -> 0
    2013-12-20
    11:33:20.905 Lync[563:3a71018c] INFO TRANSPORT CEventChannelManager.cpp/826:Received
    network monitor event so restarting event channel.
    2013-12-20
    11:33:20.906 Lync[563:3a71018c] INFO TRANSPORT
    CEventChannelManager.cpp/520:Moving the event channel aggressive mode.
    2013-12-20
    11:33:20.906 Lync[563:3a71018c] INFO APPLICATION
    CUcmpConversationsManager.cpp/4091:CUcmpConversationsManager::canDoVideoBasedOnNetworkAndPolicy
    returns false because RequestWiFiForAudio or RequestWifiForVideo is true and
    current network : is not WiFi
    2013-12-20
    11:33:20.906 Lync[563:3a71018c] INFO APPLICATION
    CUcmpConversationsManager.cpp/1672:CUcmpConversationsManager::queryCapability
    on StartP2PVideoCall returns false because
    canDoVideoBasedOnNetworkAndPolicy 
    returned false
    2013-12-20
    11:33:20.906 Lync[563:3a71018c] INFO APPLICATION CUcwaAutoDiscoveryService.cpp/2070:adIsEnabled
    = 1, sipUri = sip:[email protected], m_internalADUrlInput =
    m_externalADUrlInput =
    2013-12-20
    11:33:20.906 Lync[563:3a71018c] INFO APPLICATION
    CUcwaAutoDiscoveryService.cpp/255:Discovery is in progress and process state is
    6Ignoring request to start network discovery
    2013-12-20
    11:34:04.274 Lync[563:62d4000] INFO UTILITIES
    CHttpStreamPool.cpp/455:Scheduling stream 0x11c0a40 for release.
    2013-12-20
    11:34:04.275 Lync[563:62d4000] ERROR UTILITIES CHttpConnection.cpp/517:Connection
    timedout for request (0x%u0x12d1ea0) - notifying error E_ConnectionTimeoutError
    2013-12-20
    11:34:04.275 Lync[563:62d4000] INFO TRANSPORT
    CHttpRequestProcessor.cpp/173:Received response of request() with status =
    0x22020005
    2013-12-20
    11:34:04.276 Lync[563:62d4000] INFO TRANSPORT
    CHttpRequestProcessor.cpp/201:Request 
    resulted in E_ConnectionTimeoutError (E2-2-5). The retry counter is: 0
    2013-12-20
    11:34:04.276 Lync[563:62d4000] INFO TRANSPORT
    CHttpRequestProcessor.cpp/266:Sending event to main thread for
    request(0x1206198)
    2013-12-20
    11:34:04.277 Lync[563:3a71018c] INFO TRANSPORT
    CMetaDataManager.cpp/581:Received response for meta data request of type 60
    with status 570556421
    2013-12-20
    11:34:04.277 Lync[563:3a71018c] ERROR TRANSPORT CMetaDataManager.cpp/597:Unable
    to get a response to an unauthenticated get to url https://frontend-lync.domain-int.com/autodiscover/autodiscoverservice.svc/root/user?originaldomain=domain-ext.com
    2013-12-20
    11:34:04.278 Lync[563:3a71018c] INFO TRANSPORT CAuthenticationResolver.cpp/210:MetaData
    retrieval for url https://frontend-lync.domain-int.com/autodiscover/autodiscoverservice.svc/root/user?originaldomain=domain-ext.com
    completed with status 570556421
    2013-12-20
    11:34:04.278 Lync[563:3a71018c] INFO TRANSPORT CAuthenticationResolver.cpp/239:Deleting
    1 pended Meta data requests for url https://frontend-lync.domain-int.com/autodiscover/autodiscoverservice.svc/root/user?originaldomain=domain-ext.com
    2013-12-20
    11:34:04.278 Lync[563:3a71018c] ERROR TRANSPORT CAuthenticationResolver.cpp/288:Unable
    to get the meta data for server url https://frontend-lync.domain-int.com/autodiscover/autodiscoverservice.svc/root/user?originaldomain=domain-ext.com
    2013-12-20
    11:34:04.279 Lync[563:3a71018c] INFO TRANSPORT
    CAuthenticationResolver.cpp/293:Failing request to the request manager
    2013-12-20
    11:34:04.279 Lync[563:3a71018c] INFO TRANSPORT CRequestManager.cpp/273:Failing
    secure request UcwaAutoDiscoveryRequest with status E_ConnectionTimeoutError
    (E2-2-5)
    2013-12-20
    11:34:04.279 Lync[563:3a71018c] INFO APPLICATION
    CTransportRequestRetrialQueue.cpp/822:Req. completed, Stopping timer.
    2013-12-20
    11:34:04.279 Lync[563:3a71018c] INFO APPLICATION
    CUcwaAutoDiscoveryService.cpp/1284:Received autodiscovery response with status
    E_ConnectionTimeoutError (E2-2-5)
    2013-12-20
    11:34:04.279 Lync[563:3a71018c] INFO APPLICATION
    CUcwaAutoDiscoveryService.cpp/1242:Raising Autodiscovery event with status
    E_ConnectionTimeoutError (E2-2-5) for eventType 0
    2013-12-20
    11:34:04.280 Lync[563:3a71018c] INFO APPLICATION CUcwaAutoDiscoveryServiceRetrialWrapper.cpp/417:Received
    event for type 0 with status E_ConnectionTimeoutError (E2-2-5)
    2013-12-20
    11:34:04.280 Lync[563:3a71018c] INFO APPLICATION
    CUcwaAutoDiscoveryServiceRetrialWrapper.cpp/496:Raising Autodiscovery event
    with status E_ConnectionTimeoutError (E2-2-5) for eventType 0
    2013-12-20
    11:34:04.280 Lync[563:3a71018c] ERROR APPLICATION
    CUcwaAppSession.cpp/2066:Auto-discovery failed, aborting sign-in!
    2013-12-20
    11:34:04.280 Lync[563:3a71018c] INFO APPLICATION CUcwaAppSession.cpp/998:CUcwaAppSession::setNewActualState()
    state=0
    2013-12-20
    11:34:04.294 Lync[563:3a71018c] INFO UTILITIES
    CBasePersistableComponent.cpp/230:Storing 7 out-of-sync components took 10ms
    2013-12-20
    11:34:04.295 Lync[563:3a71018c] INFO UTILITIES CiOsAppStateQuery.h/147:Clearing
    keep-alive timer callback
    2013-12-20
    11:34:04.295 Lync[563:6d00000] INFO TRANSPORT
    CHttpRequestProcessor.cpp/134:Clearing request processor for component
    UcwaAutoDiscoverySession on sign-out.
    2013-12-20
    11:34:04.295 Lync[563:62d4000] INFO TRANSPORT
    CHttpRequestProcessor.cpp/134:Clearing request processor for component
    MetaDataManager on sign-out.
    2013-12-20
    11:34:04.295 Lync[563:3a71018c] INFO APPLICATION CAlertReporter.cpp/64:Alert
    received! Category 1, Type 201, level 0, error E_ConnectionTimeoutError
    (E2-2-5), context '', hasAction=false
    2013-12-20
    11:34:04.296 Lync[563:6d00000] INFO UTILITIES CHttpStreamPool.cpp/609:Releasing
    stream 0x11cbe40.
    2013-12-20
    11:34:04.296 Lync[563:62d4000] INFO UTILITIES CHttpStreamPool.cpp/609:Releasing
    stream 0x11c0a40.
    2013-12-20
    11:34:04.296 Lync[563:3a71018c] INFO APPLICATION CAlertReporter.cpp/117:Alert
    cleared of Category 1, Type 201, cleared 0 alerts
    2013-12-20
    11:34:04.297 Lync[563:3a71018c] INFO APPLICATION
    CTransportRequestRetrialQueue.cpp/725:Response received for req.
    GET-AuthenticatedUserGetRequest(0x1201ab8): E_ConnectionTimeoutError (E2-2-5)
    (RemoteNetworkTemporaryError); Done with req.; Stopping resend timer
    2013-12-20
    11:34:04.298 Lync[563:3a71018c] INFO UI CMAudioUtil.mm/322:stopSound
    2013-12-20
    11:34:04.298 Lync[563:3a71018c] INFO UI CMAudioUtil.mm/322:stopSound
    2013-12-20
    11:34:04.298 Lync[563:3a71018c] INFO UI CMAudioUtil.mm/322:stopSound
    2013-12-20
    11:34:04.298 Lync[563:3a71018c] INFO UI CMAudioVideoToastViewController.mm/992:Cancelling
    local notification
    2013-12-20
    11:34:04.299 Lync[563:6d00000] INFO UTILITIES CHttpStreamPool.cpp/609:Releasing
    stream 0x125fa90.
    2013-12-20
    11:34:04.300 Lync[563:3a71018c] INFO UI CMRootViewController.mm/378:ActualState
    = 0 DesiredState = 2  DataAvailable = 0
    2013-12-20
    11:34:04.300 Lync[563:3a71018c] INFO UI
    CMDetailViewController.mm/229:ActualState = 0 DesiredState = 1  DataAvailable = 0
    2013-12-20
    11:34:04.300 Lync[563:3a71018c] INFO UI CMDetailViewController.mm/262:ActualState
    = IsSignedOut DesiredState = BeSignedIn DataAvailable = 0 Showing UI =
    CredentialTableViewController
    2013-12-20
    11:34:04.300 Lync[563:3a71018c] INFO UI CMConversationCommon.mm/43:not signed
    in
    2013-12-20
    11:34:04.301 Lync[563:3a71018c] INFO UI CMConversationCommon.mm/43:not signed
    in
    2013-12-20
    11:34:04.301 Lync[563:3a71018c] INFO UI CMConversationCommon.mm/43:not signed
    in
    2013-12-20
    11:34:04.301 Lync[563:3a71018c] INFO UI CMConversationCommon.mm/43:not signed
    in
    2013-12-20
    11:34:04.301 Lync[563:3a71018c] INFO UI CMConversationCommon.mm/43:not signed
    in
    2013-12-20
    11:34:04.301 Lync[563:3a71018c] INFO UI CMNotificationManager.mm/705:desired
    view is alert, size 1
    2013-12-20
    11:34:04.301 Lync[563:3a71018c] INFO UI CMNotificationManager.mm/745:adding the
    desired view
    2013-12-20
    11:34:04.302 Lync[563:3a71018c] INFO UI CMNotificationManager.mm/480:reposition
    floating views
    2013-12-20
    11:34:04.302 Lync[563:3a71018c] INFO UI CMAlertViewController.mm/110:showalert
    is 1
    2013-12-20
    11:34:04.302 Lync[563:3a71018c] INFO UI CMAlertViewController.mm/114:showalert
    is 0
    2013-12-20
    11:34:04.302 Lync[563:3a71018c] INFO UI CMUIUtil.mm/402:Mapping error code =
    0x22020005, context = , type = 201
    2013-12-20 11:34:04.303 Lync[563:3a71018c] INFO UI
    CMUIUtil.mm/1680:Mapped error message is 'Non riesco a connettermi al server
    perché potrebbe essere occupato o temporaneamente non disponibile. Riprova.
    2013-12-20
    11:34:04.304 Lync[563:3a71018c] ERROR UI
    CMDismissButtonBaseViewController.mm/89:before: view height 1024.000000, width
    45.000000, x 64.000000, y 0.000000
    2013-12-20
    11:34:04.304 Lync[563:3a71018c] INFO UI
    CMNotificationManager.mm/1089:viewFrame: origin x 64.000000, origin y 0.000000,
    height 1024.000000, width 45.000000
    2013-12-20
    11:34:04.304 Lync[563:3a71018c] INFO UI CMNotificationManager.mm/1195:resize
    alert label, origin x 44.000000, origin y 2.000000, height 41.000000, width
    936.000000
    2013-12-20
    11:34:04.305 Lync[563:3a71018c] ERROR UI CMDismissButtonBaseViewController.mm/104:after:
    self.label.frame height 41.000000, width 936.000000, x 44.000000, y 2.000000
    2013-12-20
    11:34:04.305 Lync[563:3a71018c] INFO UI CMConversationCommon.mm/43:not signed
    in
    2013-12-20
    11:34:04.305 Lync[563:3a71018c] INFO UI CMConversationCommon.mm/43:not signed
    in
    2013-12-20
    11:34:04.305 Lync[563:3a71018c] INFO UI CMConversationCommon.mm/43:not signed
    in
    2013-12-20
    11:34:04.305 Lync[563:3a71018c] INFO UI CMConversationCommon.mm/43:not signed
    in
    2013-12-20
    11:34:04.305 Lync[563:3a71018c] INFO UI CMConversationCommon.mm/43:not signed
    in
    2013-12-20
    11:34:04.306 Lync[563:3a71018c] INFO UI CMNotificationManager.mm/705:desired
    view is alert, size 1
    2013-12-20
    11:34:04.306 Lync[563:3a71018c] INFO UI CMNotificationManager.mm/718:desired
    view is same as the current view
    2013-12-20
    11:34:04.306 Lync[563:3a71018c] INFO UI CMNotificationManager.mm/480:reposition
    floating views
    2013-12-20
    11:34:04.306 Lync[563:3a71018c] INFO UI CMAlertViewController.mm/110:showalert
    is 0
    2013-12-20
    11:34:04.306 Lync[563:3a71018c] ERROR UI
    CMDismissButtonBaseViewController.mm/89:before: view height 1024.000000, width
    45.000000, x 64.000000, y 0.000000
    2013-12-20
    11:34:04.307 Lync[563:3a71018c] INFO UI
    CMNotificationManager.mm/1089:viewFrame: origin x 64.000000, origin y 0.000000,
    height 1024.000000, width 45.000000
    2013-12-20
    11:34:04.307 Lync[563:3a71018c] INFO UI CMNotificationManager.mm/1195:resize
    alert label, origin x 44.000000, origin y 2.000000, height 41.000000, width
    936.000000
    2013-12-20
    11:34:04.307 Lync[563:3a71018c] ERROR UI
    CMDismissButtonBaseViewController.mm/104:after: self.label.frame height
    41.000000, width 936.000000, x 44.000000, y 2.000000
    2013-12-20
    11:34:04.337 Lync[563:3a71018c] INFO UI CMConversationCommon.mm/43:not signed
    in
    2013-12-20
    11:34:04.337 Lync[563:3a71018c] INFO UI CMConversationCommon.mm/43:not signed
    in
    2013-12-20
    11:34:04.338 Lync[563:3a71018c] INFO UI CMConversationCommon.mm/43:not signed
    in
    2013-12-20
    11:34:04.338 Lync[563:3a71018c] INFO UI CMConversationCommon.mm/43:not signed
    in
    2013-12-20
    11:34:04.338 Lync[563:3a71018c] INFO UI CMConversationCommon.mm/43:not signed
    in
    2013-12-20
    11:34:04.338 Lync[563:3a71018c] INFO UI CMNotificationManager.mm/705:desired
    view is alert, size 1
    2013-12-20
    11:34:04.338 Lync[563:3a71018c] INFO UI CMNotificationManager.mm/718:desired
    view is same as the current view
    2013-12-20
    11:34:04.338 Lync[563:3a71018c] INFO UI CMNotificationManager.mm/480:reposition
    floating views
    2013-12-20
    11:34:04.339 Lync[563:3a71018c] INFO UI CMAlertViewController.mm/110:showalert is
    0
    2013-12-20
    11:34:04.339 Lync[563:3a71018c] ERROR UI
    CMDismissButtonBaseViewController.mm/89:before: view height 1024.000000, width
    45.000000, x 64.000000, y 0.000000
    2013-12-20
    11:34:04.339 Lync[563:3a71018c] INFO UI CMNotificationManager.mm/1089:viewFrame:
    origin x 64.000000, origin y 0.000000, height 1024.000000, width 45.000000
    2013-12-20
    11:34:04.339 Lync[563:3a71018c] INFO UI CMNotificationManager.mm/1195:resize
    alert label, origin x 44.000000, origin y 2.000000, height 41.000000, width
    936.000000
    2013-12-20
    11:34:04.339 Lync[563:3a71018c] ERROR UI
    CMDismissButtonBaseViewController.mm/104:after: self.label.frame height
    41.000000, width 936.000000, x 44.000000, y 2.000000
    2013-12-20
    11:34:04.340 Lync[563:3a71018c] INFO UI CMSplitViewController.mm/162:Details
    Pane is in Full screen with controller
    2013-12-20
    11:34:04.340 Lync[563:3a71018c] INFO UI CMSplitViewController.mm/204:Split view
    frame orientation UIInterfaceOrientationLandscapeLeft Height = 748.000000 Width
    = 1024.000000 origin.x = 20.000000 origin.y = 0.000000 keyboardHeight =
    0.000000
    2013-12-20
    11:34:04.341 Lync[563:3a71018c] INFO UI CMSplitViewController.mm/162:Details
    Pane is in Full screen with controller
    2013-12-20
    11:34:04.341 Lync[563:3a71018c] INFO UI CMSplitViewController.mm/204:Split view
    frame orientation UIInterfaceOrientationLandscapeLeft Height = 748.000000 Width
    = 1024.000000 origin.x = 20.000000 origin.y = 0.000000 keyboardHeight =
    0.000000
    2013-12-20
    11:34:04.343 Lync[563:3a71018c] INFO UI
    CMToolsViewController.mm/349:ActualState = 0 DesiredState = 1  DataAvailable = 0
    2013-12-20
    11:34:04.344 Lync[563:3a71018c] INFO UI
    CMAlertViewController.mm/93:ObservableListItem Added event received
    2013-12-20
    11:34:04.344 Lync[563:3a71018c] INFO UI CMAlertViewController.mm/103:showalert
    is 1
    2013-12-20
    11:34:04.344 Lync[563:3a71018c] INFO UI CMConversationCommon.mm/43:not signed
    in
    2013-12-20
    11:34:04.344 Lync[563:3a71018c] INFO UI CMConversationCommon.mm/43:not signed
    in
    2013-12-20
    11:34:04.344 Lync[563:3a71018c] INFO UI CMConversationCommon.mm/43:not signed
    in
    2013-12-20
    11:34:04.344 Lync[563:3a71018c] INFO UI CMConversationCommon.mm/43:not signed
    in
    2013-12-20
    11:34:04.345 Lync[563:3a71018c] INFO UI CMConversationCommon.mm/43:not signed
    in
    2013-12-20
    11:34:04.345 Lync[563:3a71018c] INFO UI CMNotificationManager.mm/705:desired
    view is alert, size 1
    2013-12-20
    11:34:04.345 Lync[563:3a71018c] INFO UI CMNotificationManager.mm/718:desired
    view is same as the current view
    2013-12-20
    11:34:04.345 Lync[563:3a71018c] INFO UI CMNotificationManager.mm/480:reposition
    floating views
    2013-12-20
    11:34:04.345 Lync[563:3a71018c] INFO UI CMAlertViewController.mm/110:showalert
    is 1
    2013-12-20
    11:34:04.345 Lync[563:3a71018c] INFO UI CMAlertViewController.mm/114:showalert
    is 0
    2013-12-20
    11:34:04.345 Lync[563:3a71018c] INFO UI CMUIUtil.mm/402:Mapping error code =
    0x22020005, context = , type = 201
    2013-12-20
    11:34:04.346 Lync[563:3a71018c] INFO UI CMUIUtil.mm/1680:Mapped error message
    is ‘Cannot connect to the server because it could be busy or temporarily
    unavailable. Retry.’

    Hi Kent,
    thanks a lot for your reply!
    I created  _sip._tls.domain-ext.com SRV record in the external DNS and now autodiscovery works fine. At the beginning I had not created it because I thought lyncdiscover.domain-ext.com A record was enough for autodiscovery. I still cannot understand
    why lyncdiscover.domain-ext.com points to reverse proxy, while _sip._tls.domain-ext.com points to Edge server. It's strange because both are part of the research order of Lync 2013 desktop clients.
    By the way, mobility still does not work. I tried to insert bot the https URLs as manual configuration but Lync 2013 for iPad was not be able to login. I tried to paste both the URLs in the web browser and:
    with https://<ExtwebFQDN>/Autodiscover/autodiscoverservice.svc/Root appears the "Root.json" file to be downloaded;
    with https://<IntwebFQDN>/AutoDiscover/AutoDiscover.svc/Root
    the message "500-Internal error of server" appears.
    Any suggests from you about how to check the configuration of ISS/ARR 2.5?
    Thanks again!

Maybe you are looking for

  • Import more than 4 songs at a time???

    Just picked up the new 80gb. All of my music is on a dedicated hard drive. I dont want all of it imported to itunes. When i click >File>Add To Library I get a small window that shows all of my music (80,000 tracks) alpabetically by band (then by song

  • Application module is not connected to a database

    Using JDev 11.1.1.3 I have an application that uses EJB and i have an application that uses business components. The EJB app needs to integrate some parts from the BC application so i package the BC model in a jar file and use it in my EJB to create

  • Names of tables

    Hi , Can you pelase provide me the names of TOP 10 tables used in SD,MM,PM and FI/Co modules. Regards Saurabh

  • FP 11.8.800 doesn't work in OSX 10.6.8, Safari.

    FP no longer works since installing the 11.8.800 update on my MacBook Pro, OSX 10.6.8, using Safari/Firefox. No videos play at all, black screen with 'Plug-In Failed' message. I have tried all advice on the Adobe support pages, followed all instructi

  • How do i transfer all my old stuff from g4 to my new macbook pro

    Hi there, All my itunes songs, gigabytes of pics and all my other info is still on my old g4, it does have ethernet. I want to get all my stuff onto my new mac book pro which will be here in a week or so. obviously without using rw-cds if i can help