मैं DZone के कीक्लोक ट्यूटोरियल का अनुसरण करने का प्रयास कर रहा हूं (संपादित करें: जो आधिकारिक Keycloak ब्लॉग पर ट्यूटोरियल, जाहिरा तौर पर एक ही लेखक द्वारा), लेकिन मुझे निम्नलिखित समस्याओं का सामना करना पड़ा है:

  • index.html नहीं मिल रहा है

  • आंतरिक पृष्ठ के लिंक पर क्लिक करते समय त्रुटि

    हमें खेद है...

    पेज नहीं मिला

  • उसी पृष्ठ पर, त्रुटि

    javax.servlet.ServletException: सर्कुलर व्यू पथ [उत्पाद]: वर्तमान हैंडलर यूआरएल [/ उत्पादों] को फिर से भेज देगा।

  • नमूना ऐप के बजाय दिखाई देने वाला Keycloak व्यवस्थापक पैनल

मैं क्या गलत कर रहा हूं?

5
SOLO 10 मई 2018, 21:28

2 जवाब

सबसे बढ़िया उत्तर

उस ट्यूटोरियल में कई सूक्ष्म लेकिन महत्वपूर्ण विसंगतियां/टाइपो हैं। प्रकटन के क्रम में:

मुख्य ट्यूटोरियल

  1. index.html का स्थान /src/resources/static के रूप में दिया गया है। यदि आप स्प्रिंग इनिशियलाइज़र का उपयोग कर रहे हैं, तो पूर्व-निर्मित कोड में main और test दोनों निर्देशिकाएं src के अंतर्गत होंगी, इसलिए इसके बजाय सही स्थान src/main/resources/static होगा।

  2. नियंत्रक के लिए कोड में, पंक्ति 9 है

    return "products";
    

    यह स्प्रिंग को products.html का उपयोग करने के लिए कहता है। वास्तविक HTML फ़ाइल product, एकवचन होगी, क्योंकि यह product.ftl से उत्पन्न होती है। वापसी मूल्य से 'एस' को हटा दें।

  3. application.properties फ़ाइल में, दी गई पंक्तियों में से एक है

    keycloak.realm=springboot
    

    इससे पहले, जब कीक्लोक व्यवस्थापक पैनल में, गाइड ने क्षेत्र को "स्प्रिंगबूट" नाम देने का सुझाव दिया था। इन मानों का मिलान होना चाहिए, और वे केस-संवेदी हैं। किसी एक को बदलें।

  4. सेटअप पूर्ण होने के बाद, निर्देश कहते हैं

    अब "http://localhost:8080"

    पर ब्राउज़ करें

    सही URL http://localhost:8081 है, क्योंकि server.port को application.properties में 8081 पर सेट किया गया था। पोर्ट 8080 अभी भी व्यवस्थापक कंसोल द्वारा उपयोग में होना चाहिए।

इन परिवर्तनों के साथ, परीक्षण ऐप को वर्णित के अनुसार लोड और व्यवहार करना चाहिए।

स्प्रिंग सुरक्षा जोड़ना

नई getProducts() विधि में कॉपी करते समय सावधान रहें कि products/product टाइपो फिर से न आएं।

7
SOLO 10 मई 2018, 21:53

आजकल, आधिकारिक दस्तावेज़ीकरण काम करने के लिए, आप SOLO के उत्तर का उपयोग कर सकते हैं और निम्नलिखित कोड के साथ पूरक कर सकते हैं:

पोम में कीक्लोक जोड़ें

<dependency>
    <groupId>org.keycloak</groupId>
    <artifactId>keycloak-spring-boot-starter</artifactId>
</dependency>

पीओएम में निर्भरता प्रबंधन जोड़ें

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.keycloak.bom</groupId>
            <artifactId>keycloak-adapter-bom</artifactId>
            <version>10.0.2</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

.ftl प्रारूप को .ftlh में बदलें और इस तरह उपयोग करें:

<html>
<h2>My products</h2>
<ul>
    <#list products as product>
        <li>${product}</li>
    </#list>
</ul>
<p>
    <a href="/logout">Logout</a>
</p>
1
Guilherme Alencar 21 अगस्त 2020, 23:04