المصادقة باستخدام URI المعلومات حول المستخدم HTTP المكون: // المعلومات حول المستخدم @ اسم المضيف: منفذ / المسار في بريمج

StackOverflow https://stackoverflow.com/questions/828076

  •  06-07-2019
  •  | 
  •  

سؤال

وأنا بحاجة لتعريف المستخدمين وفقا لمجموعة فرعية URI. فمن لديه HTTP: // المعلومات حول المستخدم @ اسم المضيف: منفذ / مسار

ووjava.net.URI ( يمثل http://java.sun.com/j2se/1.4.2/docs/api/java/net/URI.html ) تنفيذ URI. ومع ذلك، في بريمج لم أكن قادرا على استرداد URL / URI تحتوي على "المعلومات حول المستخدم" المكون URI ل. اعتقد ان طريقة HttpServletRequest.getRequestURL () بإرجاع URL الكامل، ولكن في مرحلة المكون "المعلومات حول المستخدم" ويجري قمعها أو تجاهلها.

وأدركت أنه عندما طلب بريمج باستخدام حليقة بدلا من فايرفوكس، أنه إضافة إذن الأساسي HTTP إلى الرأس. لذلك، يمكن أن تكون ذات صلة بتنفيذ العميل HTTP؟ والمنادي يمكن أن يحد من عنصر "المستخدم معلومات"؟

والتعليمة البرمجية التالية بالتكرار فقط من خلال رأس ومحاولة لقراءة العنصر المستخدم من المعلومات.

@SuppressWarnings("unchecked")
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    // 
    try {

        PrintWriter out = response.getWriter();

        String header;
        for (Enumeration e = request.getHeaderNames(); e.hasMoreElements();) {
             header = e.nextElement().toString();
             out.println(header + ": " + request.getHeader(header));
        }

        URI uri = new URI(request.getRequestURL().toString());

        out.println("request uri: " + request.getRequestURI());
        out.println("request url: " + request.getRequestURL());
        out.println("userinfo: " + uri.getUserInfo());
    } catch (URISyntaxException e) {
        e.printStackTrace();
    }

}

ويرجع الفضل في ذلك مسبقا!

هل كانت مفيدة؟

المحلول

ويتم تمرير اسم المستخدم وكلمة المرور كجزء من التوثيق HTTP، وليس جزءا من URL. على وجه الخصوص، فإن المتصفح إرسالها أبدا ما لم يطلب منها من خلال استجابة 401 غير مخول.

ويمكنك ان ترى بعض الأمثلة على كيفية تنفيذ مصادقة HTTP في بريمج هنا: <لأ href = "http://docstore.mik.ua/orelly/java-ent/servlet/ch08_01.htm" يختلط = "نوفولو noreferrer "> http://docstore.mik.ua/orelly/java-ent/servlet/ch08_01.htm

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top