Mengapa Pengalihan Kebenaran saya Gagal pada Borang JSF Hantar?
Ubah Hala Kebenaran Gagal pada Borang JSF Dihantar Kerana Pelaksanaan Tidak Wajar
Apabila melaksanakan kebenaran tersuai dalam JSF, adalah penting untuk menggunakan alatan yang betul dan kaedah. Dalam kes ini, FacesServlet tersuai tidak sesuai untuk mengendalikan semakan kebenaran.
Isu timbul kerana FacesServlet tersuai memintas semua permintaan, termasuk penyerahan pautan arahan/butang JSF. Walau bagaimanapun, penyerahan ini sering mencetuskan permintaan AJAX, yang menjangkakan respons XML khusus yang mengarahkan enjin ajax JSF untuk mengubah hala halaman.
Dengan menghantar pengepala ubah hala kepada permintaan AJAX, FacesServlet tersuai secara berkesan menjadikan respons itu tidak sah, mengakibatkan halaman tidak berubah. Sebaliknya, ia harus mengembalikan respons XML khas yang mengubah hala penyemak imbas.
Selain itu, penggunaan FacesServlet tersuai untuk kebenaran biasanya tidak digalakkan. Penapis servlet ialah mekanisme yang lebih sesuai untuk mengendalikan tugas ini. Ia menawarkan fleksibiliti yang lebih besar dan mengelakkan kemungkinan konflik dengan FacesServlet, yang bertanggungjawab untuk pemprosesan JSF.
Pelaksanaan Betul Menggunakan Penapis Servlet
Penapis servlet boleh dikonfigurasikan untuk campur tangan sebelum setiap permintaan, membolehkan semakan kebenaran. Pertimbangkan contoh berikut:
<code class="java">@WebFilter("/*") public class AuthorizationFilter implements Filter { // Generate XML response for AJAX redirects private static final String AJAX_REDIRECT_XML = "..."; @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws ... { HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) res; HttpSession session = request.getSession(false); // Define authorization flags boolean loggedIn = ...; boolean loginRequest = ...; boolean resourceRequest = ...; boolean ajaxRequest = ...; // Handle authorization and redirection if (loggedIn || loginRequest || resourceRequest) { // Continue request chain.doFilter(request, response); } else if (ajaxRequest) { // Return XML response for AJAX redirects response.getWriter().printf(AJAX_REDIRECT_XML, loginURL); } else { // Perform synchronous redirect response.sendRedirect(loginURL); } } }</code>
Penapis ini menyediakan kawalan terperinci ke atas kebenaran dan memastikan kedua-dua permintaan standard dan AJAX dikendalikan dengan betul, mengubah hala pengguna ke halaman log masuk jika perlu.
Atas ialah kandungan terperinci Mengapa Pengalihan Kebenaran saya Gagal pada Borang JSF Hantar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Penyelesaian masalah dan penyelesaian kepada perisian keselamatan syarikat yang menyebabkan beberapa aplikasi tidak berfungsi dengan baik. Banyak syarikat akan menggunakan perisian keselamatan untuk memastikan keselamatan rangkaian dalaman. …

Penyelesaian untuk menukar nama kepada nombor untuk melaksanakan penyortiran dalam banyak senario aplikasi, pengguna mungkin perlu menyusun kumpulan, terutama dalam satu ...

Pemprosesan pemetaan medan dalam dok sistem sering menemui masalah yang sukar ketika melaksanakan sistem dok: bagaimana untuk memetakan medan antara muka sistem dengan berkesan ...

Apabila menggunakan Mybatis-Plus atau Rangka Kerja ORM yang lain untuk operasi pangkalan data, sering diperlukan untuk membina syarat pertanyaan berdasarkan nama atribut kelas entiti. Sekiranya anda secara manual setiap kali ...

Mula musim bunga menggunakan versi IntelliJideaultimate ...

Penukaran objek dan tatasusunan Java: Perbincangan mendalam tentang risiko dan kaedah penukaran jenis cast yang betul Banyak pemula Java akan menemui penukaran objek ke dalam array ...

Penjelasan terperinci mengenai reka bentuk jadual SKU dan SPU di platform e-dagang Artikel ini akan membincangkan isu reka bentuk pangkalan data SKU dan SPU dalam platform e-dagang, terutamanya bagaimana menangani jualan yang ditentukan pengguna ...

Bagaimanakah penyelesaian caching Redis menyedari keperluan senarai kedudukan produk? Semasa proses pembangunan, kita sering perlu menangani keperluan kedudukan, seperti memaparkan ...
