• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Error generated when authenticating with Primefaces modal dialog and spring security

 
Ranch Hand
Posts: 47
1
  • Number of slices to send:
    Optional 'thank-you' note:
I wanted to add authentication using Primefaces modal dialog and spring security to a web project but it generates an error when clicking on the login button. here is the code used:

Modal dialog:



The function doLogin:



POST http://localhost:8080/MywebProject/index.xhtml 404 (Not Found)



When viewing the generated source code, I noticed that the action attribute of the generated form h:form  is filled with a link to the current page which is index.xhtml so the error generated comes back to this modification.

Does anyone have an idea about this error
Thanks




 
Saloon Keeper
Posts: 27871
196
  • Number of slices to send:
    Optional 'thank-you' note:
Well, JSF Rule #1 is that whenever you have lots of JSF-specific code, you're probably doing it wrong. JSF was designed to mostly use POJOs and work in the background, so grabbing the FacesContext and messing around with JEE and JSF internals is generally a red flag.

I'm sorry to say that I still haven't read very far into the Spring Security book I won on the Ranch a while back. Mostly I just use the basic JEE standard container security, which doesn't require any user-written login code at all.

I can tell you that in JEE basic security that explicitly invoking the URL for j_security_check doesn't work, since the necessary context in the server isn't there. The server sets up the security context for j_security_check when it detects an incoming secured URL request (as defined in web.xml) for a user who isn't currently logged in and automatically presents the login/loginfail page and processes the form data from those pages wihout any application intervention (or even knowledge - there is no JEE event for "user has logged in").

Two things to always bear in mind:

If a JSF action method returns NULL, that means that the current JSF View is to be re-presented instead of navigating to a new View. DO NOT attempt to manually dispatch, as you'll lose the JSF internal context! Secondly — and most importantly — the View name in the URL is not always going to be the the View that will be presented. In JSF, the URL is more of a session anchor than an absolute indicator of what page will display and the URL view name will often lag behind.

That last part is very important, since JEE container security keys off the incoming URL and NOT on the page to be displayed, so when they don't match, a potential security hazard exists. This is avoided by using the "redirect" option on internal View navigations.
 
Steve Dev
Ranch Hand
Posts: 47
1
  • Number of slices to send:
    Optional 'thank-you' note:
If you take a look at the generated code, you can see that there is an incorrect link that corresponds to the current page.

The question is why this link is added and how to fix it to point to the authentication function
 
Tim Holloway
Saloon Keeper
Posts: 27871
196
  • Number of slices to send:
    Optional 'thank-you' note:
No, that's not how it works.

As I said, in JSF, the URL acts more as a "session anchor" than as an absolute page request.

If you look at the full form details, you'll see that there's quite a bit of cryptic data that was also added to that form. It's used as part of the JSF state maintenance functionality and it's why you can't just brute-force redispatch JSF URLs.

There's nothing wrong with that form's URL.

I can tell you this. I only have one app running Spring Security and it's a Spring Boot app. And I did not have to tie myself in JSF-specific knots to make it handle the login process.

See this project: https://gogs.mousetech.com/mtsinc7/GourmetJ-Springboot All of the URL security is handled in src/main/java/com/mousetech/gourmetj/SpringSecurityConfig.java and there's not a single JSF header file in there. In fact, the only JSF references at all are to permit the JSF resources to be accessible to non-logged in users (the recipe display and print pages do not require a logged in user — the comments are out of sync with the code).
 
reply
    Bookmark Topic Watch Topic
  • New Topic
vceplus-200-125    | boson-200-125    | training-cissp    | actualtests-cissp    | techexams-cissp    | gratisexams-300-075    | pearsonitcertification-210-260    | examsboost-210-260    | examsforall-210-260    | dumps4free-210-260    | reddit-210-260    | cisexams-352-001    | itexamfox-352-001    | passguaranteed-352-001    | passeasily-352-001    | freeccnastudyguide-200-120    | gocertify-200-120    | passcerty-200-120    | certifyguide-70-980    | dumpscollection-70-980    | examcollection-70-534    | cbtnuggets-210-065    | examfiles-400-051    | passitdump-400-051    | pearsonitcertification-70-462    | anderseide-70-347    | thomas-70-533    | research-1V0-605    | topix-102-400    | certdepot-EX200    | pearsonit-640-916    | itproguru-70-533    | reddit-100-105    | channel9-70-346    | anderseide-70-346    | theiia-IIA-CIA-PART3    | certificationHP-hp0-s41    | pearsonitcertification-640-916    | anderMicrosoft-70-534    | cathMicrosoft-70-462    | examcollection-cca-500    | techexams-gcih    | mslearn-70-346    | measureup-70-486    | pass4sure-hp0-s41    | iiba-640-916    | itsecurity-sscp    | cbtnuggets-300-320    | blogged-70-486    | pass4sure-IIA-CIA-PART1    | cbtnuggets-100-101    | developerhandbook-70-486    | lpicisco-101    | mylearn-1V0-605    | tomsitpro-cism    | gnosis-101    | channel9Mic-70-534    | ipass-IIA-CIA-PART1    | forcerts-70-417    | tests-sy0-401    | ipasstheciaexam-IIA-CIA-PART3    | mostcisco-300-135    | buildazure-70-533    | cloudera-cca-500    | pdf4cert-2v0-621    | f5cisco-101    | gocertify-1z0-062    | quora-640-916    | micrcosoft-70-480    | brain2pass-70-417    | examcompass-sy0-401    | global-EX200    | iassc-ICGB    | vceplus-300-115    | quizlet-810-403    | cbtnuggets-70-697    | educationOracle-1Z0-434    | channel9-70-534    | officialcerts-400-051    | examsboost-IIA-CIA-PART1    | networktut-300-135    | teststarter-300-206    | pluralsight-70-486    | coding-70-486    | freeccna-100-101    | digitaltut-300-101    | iiba-CBAP    | virtuallymikebrown-640-916    | isaca-cism    | whizlabs-pmp    | techexams-70-980    | ciscopress-300-115    | techtarget-cism    | pearsonitcertification-300-070    | testking-2v0-621    | isacaNew-cism    | simplilearn-pmi-rmp    | simplilearn-pmp    | educationOracle-1z0-809    | education-1z0-809    | teachertube-1Z0-434    | villanovau-CBAP    | quora-300-206    | certifyguide-300-208    | cbtnuggets-100-105    | flydumps-70-417    | gratisexams-1V0-605    | ituonline-1z0-062    | techexams-cas-002    | simplilearn-70-534    | pluralsight-70-697    | theiia-IIA-CIA-PART1    | itexamtips-400-051    | pearsonitcertification-EX200    | pluralsight-70-480    | learn-hp0-s42    | giac-gpen    | mindhub-102-400    | coursesmsu-CBAP    | examsforall-2v0-621    | developerhandbook-70-487    | root-EX200    | coderanch-1z0-809    | getfreedumps-1z0-062    | comptia-cas-002    | quora-1z0-809    | boson-300-135    | killtest-2v0-621    | learncia-IIA-CIA-PART3    | computer-gcih    | universitycloudera-cca-500    | itexamrun-70-410    | certificationHPv2-hp0-s41    | certskills-100-105    | skipitnow-70-417    | gocertify-sy0-401    | prep4sure-70-417    | simplilearn-cisa    |
http://www.pmsas.pr.gov.br/wp-content/    | http://www.pmsas.pr.gov.br/wp-content/    |