คำถามติดแท็ก spring-security

Spring Security เป็นโซลูชันการรักษาความปลอดภัยแอปพลิเคชันของ Spring Framework Spring security สามารถใช้เพื่อรักษาความปลอดภัย URL และการเรียกใช้เมธอด มีการใช้กันอย่างแพร่หลายเพื่อรักษาความปลอดภัยเว็บแอ็พพลิเคชันแบบสแตนด์อโลนพอร์ตเล็ตและแอ็พพลิเคชัน REST ที่เพิ่มมากขึ้น

17
เมื่อใช้ Spring Security วิธีที่เหมาะสมในการรับข้อมูลชื่อผู้ใช้ปัจจุบัน (เช่น SecurityContext) ในถั่วคืออะไร
ฉันมีเว็บแอพ Spring MVC ซึ่งใช้ Spring Security ฉันต้องการทราบชื่อผู้ใช้ของผู้ใช้ที่เข้าสู่ระบบในปัจจุบัน ฉันใช้ข้อมูลโค้ดที่ระบุด้านล่าง นี่เป็นวิธีที่ยอมรับหรือไม่ ฉันไม่ชอบการเรียกใช้วิธีการคงที่ภายในตัวควบคุมนี้ - ที่เอาชนะวัตถุประสงค์ทั้งหมดของฤดูใบไม้ผลิ IMHO มีวิธีในการกำหนดค่าแอพเพื่อให้มี SecurityContext ปัจจุบันหรือการตรวจสอบความถูกต้องปัจจุบันถูกฉีดแทนหรือไม่? @RequestMapping(method = RequestMethod.GET) public ModelAndView showResults(final HttpServletRequest request...) { final String currentUser = SecurityContextHolder.getContext().getAuthentication().getName(); ... }

4
การรับรองความถูกต้อง RESTful ผ่าน Spring
ปัญหา: เรามี RESTful API แบบสปริง MVC ซึ่งมีข้อมูลที่ละเอียดอ่อน API ควรมีความปลอดภัย แต่การส่งข้อมูลรับรองของผู้ใช้ (คำสั่งผสมของผู้ใช้ / รหัสผ่าน) พร้อมกับคำขอแต่ละรายการไม่เป็นที่ต้องการ ตามแนวทาง REST (และข้อกำหนดทางธุรกิจภายใน) เซิร์ฟเวอร์จะต้องอยู่ในสถานะไร้สัญชาติ API จะใช้งานโดยเซิร์ฟเวอร์อื่นในรูปแบบการตอบโต้กับผู้ใช้ได้ ที่ต้องการ: ไคลเอนต์ทำการร้องขอ.../authenticate(URL ที่ไม่มีการป้องกัน) ด้วยหนังสือรับรอง เซิร์ฟเวอร์ส่งคืนโทเค็นที่ปลอดภัยซึ่งมีข้อมูลเพียงพอสำหรับเซิร์ฟเวอร์เพื่อตรวจสอบคำขอในอนาคตและยังคงไร้สัญชาติ นี้อาจจะประกอบด้วยข้อมูลเช่นเดียวกับการรักษาความปลอดภัยของฤดูใบไม้ผลิจำ-Me Token ไคลเอนต์ทำการร้องขอที่ตามมาไปยัง URL ต่างๆ (ที่มีการป้องกัน) ซึ่งจะเพิ่มโทเค็นที่ได้รับก่อนหน้านี้เป็นพารามิเตอร์การสืบค้น (หรือน้อยกว่านั้นคือส่วนหัวคำขอ HTTP) ไม่สามารถคาดว่าลูกค้าจะจัดเก็บคุกกี้ได้ เนื่องจากเราใช้ Spring อยู่แล้วโซลูชันควรใช้ประโยชน์จาก Spring Security เราต่อสู้กับกำแพงที่พยายามทำให้งานนี้สำเร็จดังนั้นหวังว่าจะมีใครบางคนแก้ไขปัญหานี้ได้แล้ว จากสถานการณ์ข้างต้นคุณจะแก้ไขความต้องการนี้ได้อย่างไร

4
ความแตกต่างระหว่างบทบาทและสิ่งที่ได้รับสิทธิ์ในการรักษาความปลอดภัยของสปริง
มีแนวคิดและการใช้งานใน Spring Security เช่นGrantedAuthorityอินเทอร์เฟซเพื่อรับสิทธิ์ในการอนุญาต / ควบคุมการเข้าถึง ฉันต้องการให้การดำเนินการที่อนุญาตเช่นcreateSubUsersหรือdeleteAccountsซึ่งฉันอนุญาตให้ผู้ดูแลระบบ (มีบทบาทROLE_ADMIN) ฉันสับสนเนื่องจากบทเรียน / การสาธิตที่ฉันเห็นทางออนไลน์ ฉันพยายามเชื่อมต่อสิ่งที่ฉันอ่าน แต่ฉันคิดว่าเราปฏิบัติต่อทั้งสองอย่างสลับกันได้ ฉันเห็นการhasRoleบริโภคGrantedAuthorityสตริงหรือไม่ ฉันเข้าใจผิดแน่นอนในการทำความเข้าใจ แนวคิดเหล่านี้ใน Spring Security มีอะไรบ้าง ฉันจะจัดเก็บบทบาทของผู้ใช้แยกจากหน่วยงานผู้มีอำนาจสำหรับบทบาทนั้นได้อย่างไร ฉันยังดูที่org.springframework.security.core.userdetails.UserDetailsอินเทอร์เฟซที่ใช้ในการรับรองความถูกต้อง - ผู้ให้บริการอ้างอิง DAO ซึ่งใช้User(หมายเหตุล่าสุด GrantedAuthority): public User(String username, String password, boolean enabled, boolean accountNonExpired, boolean credentialsNonExpired, boolean accountNonLocked, Collection<? extends GrantedAuthority> authorities) หรือมีวิธีอื่นในการแยกความแตกต่างระหว่างสองอีกหรือไม่ หรือมันไม่ได้รับการสนับสนุนและเราต้องทำด้วยตัวเอง?

1
Spring Security บน Wildfly: เกิดข้อผิดพลาดขณะเรียกใช้เชนตัวกรอง
ฉันพยายามที่จะบูรณาการในฤดูใบไม้ผลิการรักษาความปลอดภัย SAML ขยายกับฤดูใบไม้ผลิ Boot เกี่ยวกับเรื่องนี้ฉันได้พัฒนาแอปพลิเคชันตัวอย่างที่สมบูรณ์ ซอร์สโค้ดมันมีอยู่ใน GitHub: spring-boot-saml-integration บน GitHub ด้วยการเรียกใช้เป็นแอพพลิเคชั่น Spring Boot (ทำงานกับแอพพลิเคชั่นเซิร์ฟเวอร์ในตัว SDK) WebApp ทำงานได้ดี แต่น่าเสียดายที่กระบวนการ AuthN เดียวกันไม่ได้ทำงานที่ทั้งหมดในสายน้ำ / WildFly ตามบันทึกแล้ว IdP จะดำเนินการกระบวนการAuthNจริง: คำแนะนำในUserDetailsการปรับใช้แบบกำหนดเองของฉันนั้นดำเนินการอย่างถูกต้อง แม้จะมีโฟลว์การเรียกใช้งานสปริงไม่ได้ตั้งค่าและคงสิทธิพิเศษสำหรับผู้ใช้ปัจจุบันไว้ @Component public class SAMLUserDetailsServiceImpl implements SAMLUserDetailsService { // Logger private static final Logger LOG = LoggerFactory.getLogger(SAMLUserDetailsServiceImpl.class); @Override public Object loadUserBySAML(SAMLCredential credential) throws UsernameNotFoundException, …

15
Spring 3.0 - ไม่สามารถค้นหา Spring NamespaceHandler สำหรับเนมสเปซ XML schema [http://www.springframework.org/schema/security]
ความคิดใดที่เป็นสาเหตุของสิ่งนี้ ไม่สามารถค้นหา Spring NamespaceHandler สำหรับ XML schema namespace [ http://www.springframework.org/schema/security] org.springframework.web.context.ContextLoader initWebApplicationContext: Context initialization failed org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/security] Offending resource: ServletContext resource [/WEB-INF/applicationContext.xml] นี่คือ applicationContext.xml ของฉัน: <?xml version="1.0" encoding="UTF-8"?> <beans:beans xmlns="http://www.springframework.org/schema/security" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd"> …

7
ความหมายและความแตกต่างระหว่างหัวเรื่องผู้ใช้และอาจารย์ใหญ่คืออะไร
ในบริบทของกรอบการรักษาความปลอดภัย, คำไม่กี่มักเกิดขึ้นภายใต้ , ผู้ใช้และเงินต้นของที่ฉันยังไม่ได้สามารถที่จะหาคำนิยามที่ชัดเจนและความแตกต่างระหว่างพวกเขา ดังนั้นคำเหล่านี้มีความหมายว่าอะไรกันแน่และทำไมความแตกต่างของหัวข้อและอาจารย์ใหญ่จึงเป็นสิ่งจำเป็น?

8
วิธีรับ UserDetails ของผู้ใช้ที่ใช้งานอยู่
ในตัวควบคุมของฉันเมื่อฉันต้องการผู้ใช้ที่ใช้งานอยู่ (ล็อกอิน) ฉันกำลังทำสิ่งต่อไปนี้เพื่อให้เกิดUserDetailsการใช้งานของฉัน: User activeUser = (User)SecurityContextHolder.getContext().getAuthentication().getPrincipal(); log.debug(activeUser.getSomeCustomField()); มันใช้งานได้ดี แต่ฉันคิดว่า Spring จะทำให้ชีวิตง่ายขึ้นในกรณีเช่นนี้ มีวิธีที่จะUserDetailsautowired เป็นทั้งตัวควบคุมหรือวิธีการหรือไม่ ตัวอย่างเช่น: public ModelAndView someRequestHandler(Principal principal) { ... } แต่แทนที่จะได้รับUsernamePasswordAuthenticationTokenฉันจะได้รับUserDetailsแทนหรือไม่ ฉันกำลังมองหาทางออกที่สง่างาม ความคิดใด ๆ

5
ความแตกต่างระหว่าง @Secured และ @PreAuthorize ในการรักษาความปลอดภัยสปริง 3 คืออะไร
ยังไม่ชัดเจนสำหรับฉันความแตกต่างของความปลอดภัยของสปริงระหว่าง: @PreAuthorize("hasRole('ROLE_USER')") public void create(Contact contact) และ @Secured("ROLE_USER") public void create(Contact contact) ฉันเข้าใจว่า PreAuthorize สามารถทำงานกับสปริง el ได้ แต่ในตัวอย่างของฉันมีความแตกต่างจริงหรือไม่?

11
การทดสอบหน่วยด้วย Spring Security
บริษัท ของฉันกำลังประเมิน Spring MVC เพื่อพิจารณาว่าเราควรใช้ในโครงการต่อไปของเราหรือไม่ จนถึงตอนนี้ฉันชอบสิ่งที่ฉันเห็นและตอนนี้ฉันกำลังดูโมดูลความปลอดภัยของสปริงเพื่อตรวจสอบว่าเป็นสิ่งที่เราสามารถ / ควรใช้ ข้อกำหนดด้านความปลอดภัยของเราค่อนข้างพื้นฐาน ผู้ใช้เพียงแค่ต้องสามารถให้ชื่อผู้ใช้และรหัสผ่านเพื่อให้สามารถเข้าถึงบางส่วนของเว็บไซต์ (เช่นเพื่อรับข้อมูลเกี่ยวกับบัญชีของพวกเขา); และมีหน้าเว็บจำนวนหนึ่งบนไซต์ (คำถามที่พบบ่อยการสนับสนุน ฯลฯ ) ซึ่งผู้ใช้ที่ไม่ระบุชื่อควรได้รับสิทธิ์เข้าถึง ในต้นแบบที่ฉันสร้างฉันได้จัดเก็บวัตถุ "LoginCredentials" (ซึ่งเพิ่งมีชื่อผู้ใช้และรหัสผ่าน) ในเซสชันสำหรับผู้ใช้ที่ได้รับการรับรองความถูกต้อง คอนโทรลเลอร์บางตัวตรวจสอบว่าวัตถุนี้อยู่ในเซสชันเพื่อรับการอ้างอิงถึงชื่อผู้ใช้ที่เข้าสู่ระบบหรือไม่ ฉันต้องการแทนที่ตรรกะที่พัฒนาขึ้นเองด้วย Spring Security แทนซึ่งจะมีประโยชน์อย่างมากในการลบ "เราจะติดตามผู้ใช้ที่เข้าสู่ระบบได้อย่างไร" และ "เราจะตรวจสอบผู้ใช้อย่างไร" จากตัวควบคุม / รหัสธุรกิจของฉัน ดูเหมือนว่า Spring Security จะมีวัตถุ "บริบท" เพื่อให้สามารถเข้าถึงชื่อผู้ใช้ / ข้อมูลหลักจากที่ใดก็ได้ในแอปของคุณ ... Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); ... ซึ่งดูเหมือนว่าจะไม่มีสปริงเหมือนวัตถุนี้เป็นซิงเกิล (ทั่วโลก) ในทางใดทางหนึ่ง คำถามของฉันคือ: หากนี่เป็นวิธีมาตรฐานในการเข้าถึงข้อมูลเกี่ยวกับผู้ใช้ที่ได้รับการรับรองความถูกต้องใน …

3
Spring Security Filter Chain ทำงานอย่างไร
ฉันตระหนักดีว่าการรักษาความปลอดภัยของ Spring สร้างขึ้นจากชุดตัวกรองซึ่งจะสกัดกั้นคำขอตรวจจับ (ไม่มี) การตรวจสอบสิทธิ์เปลี่ยนเส้นทางไปยังจุดเข้าใช้งานการตรวจสอบสิทธิ์หรือส่งคำขอไปยังบริการอนุญาตและในที่สุดก็ปล่อยให้คำขอเข้าสู่ servlet หรือโยนข้อยกเว้นด้านความปลอดภัย (ไม่ได้รับการพิสูจน์ตัวตนหรือไม่ได้รับอนุญาต) DelegatingFitlerProxyจะรวมตัวกรองเหล่านี้เข้าด้วยกัน ในการดำเนินงานของพวกเขาเหล่านี้เข้าถึงบริการกรองเช่นUserDetailsServiceและAuthenticationManager ตัวกรองหลักในห่วงโซ่คือ (ตามลำดับ) SecurityContextPersistenceFilter (กู้คืนการพิสูจน์ตัวตนจาก JSESSIONID) UsernamePasswordAuthenticationFilter (ดำเนินการตรวจสอบสิทธิ์) ExceptionTranslationFilter (จับข้อยกเว้นด้านความปลอดภัยจาก FilterSecurityInterceptor) FilterSecurityInterceptor (อาจมีข้อยกเว้นในการพิสูจน์ตัวตนและการอนุญาต) ฉันสับสนว่าตัวกรองเหล่านี้ใช้อย่างไร สำหรับการเข้าสู่ระบบแบบฟอร์มที่มีให้ในฤดูใบไม้ผลิUsernamePasswordAuthenticationFilterจะใช้สำหรับ/ loginเท่านั้นและตัวกรองหลังไม่ได้ใช่หรือไม่? ที่ไม่ใช้แบบฟอร์มการเข้าสู่ระบบองค์ประกอบ namespace อัตโนมัติกำหนดค่าตัวกรองเหล่านี้หรือไม่ ทุกคำขอ (รับรองความถูกต้องหรือไม่) เข้าถึงFilterSecurityInterceptorสำหรับ URL ที่ไม่เข้าสู่ระบบหรือไม่ จะเกิดอะไรขึ้นถ้าฉันต้องการรักษาความปลอดภัย REST API ด้วยJWT-tokenซึ่งดึงมาจากการเข้าสู่ระบบ? ฉันต้องกำหนดค่าhttpแท็กคอนฟิกูเรชันเนมสเปซสองแท็กสิทธิ์? หนึ่งสำหรับการเข้าสู่ระบบ /ด้วยUsernamePasswordAuthenticationFilterและอีกคนหนึ่งสำหรับส่วนที่เหลือของ URL JwtAuthenticationFilterกับที่กำหนดเอง การกำหนดค่าสองhttpองค์ประกอบสร้างสองspringSecurityFitlerChainsหรือไม่ ถูกUsernamePasswordAuthenticationFilterปิดโดยปริยายจนผมประกาศform-login? ฉันจะแทนที่SecurityContextPersistenceFilterด้วยตัวกรองซึ่งจะได้รับAuthenticationจากที่มีอยู่JWT-tokenแทนที่จะเป็นJSESSIONIDอย่างไร

3
Shiro กับ SpringSecurity [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบพร้อมข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน7 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ขณะนี้ฉันได้ประเมินกรอบการรักษาความปลอดภัยที่ใช้ Java ฉันเป็นผู้ใช้ Spring 3.0 ดังนั้นดูเหมือนว่า SpringSecurity จะเป็นตัวเลือกที่เหมาะสม แต่การรักษาความปลอดภัยของ Spring ดูเหมือนจะประสบกับความซับซ้อนมากเกินไปดูเหมือนว่าจะไม่ทำให้การรักษาความปลอดภัยง่ายขึ้นอย่างแน่นอน ชิโระดูเหมือนจะเข้ากันและเข้าใจง่ายกว่ามาก ฉันกำลังมองหารายการข้อดีข้อเสียระหว่างสองกรอบนี้

7
DelegatingFilterProxy ของ Spring MVC คืออะไร
ฉันเห็นสิ่งนี้ในแอป Spring MVC ของฉันweb.xml: <filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> ฉันพยายามหาสาเหตุว่าทำไมถึงอยู่ที่นั่นและจำเป็นจริงหรือไม่ ฉันพบคำอธิบายนี้ในเอกสาร Springแต่ไม่ได้ช่วยให้ฉันเข้าใจได้: มันดูเหมือนว่าจะชี้ให้เห็นว่าส่วนนี้เป็น "กาว" ระหว่าง Servlets ที่กำหนดไว้ในและส่วนประกอบที่กำหนดไว้ในฤดูใบไม้ผลิweb.xmlapplicationContext.xml 7.1 DelegatingFilterProxy เมื่อใช้ตัวกรอง servlet คุณต้องประกาศในตัวกรองของคุณอย่างชัดเจนweb.xmlมิฉะนั้นจะถูกละเว้นโดยคอนเทนเนอร์ servlet ใน Spring Security คลาสของตัวกรองยังเป็น Spring beans ที่กำหนดไว้ในบริบทของแอปพลิเคชันดังนั้นจึงสามารถใช้ประโยชน์จากสิ่งอำนวยความสะดวกในการฉีดแบบพึ่งพาและอินเทอร์เฟซวงจรชีวิตของ Spring Spring's DelegatingFilterProxyให้การเชื่อมโยงระหว่างweb.xmlและบริบทของแอปพลิเคชัน เมื่อใช้ DelegatingFilterProxy คุณจะเห็นสิ่งนี้ในweb.xmlไฟล์: <filter> <filter-name>myFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>myFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> สังเกตว่าจริงๆแล้วตัวกรองคือ a DelegatingFilterProxyไม่ใช่คลาสที่จะใช้ตรรกะของตัวกรองจริงๆ สิ่งที่DelegatingFilterProxyจะเป็นวิธีการมอบหมายของตัวกรองผ่านถั่วที่ได้จากบริบทของแอพลิเคชันฤดูใบไม้ผลิ สิ่งนี้ทำให้ bean ได้รับประโยชน์จากการสนับสนุนวงจรชีวิตบริบทของเว็บแอ็พพลิเคชัน …

12
จะจัดการข้อยกเว้นในตัวกรองในฤดูใบไม้ผลิได้อย่างไร?
ฉันต้องการใช้วิธีทั่วไปในการจัดการรหัสข้อผิดพลาด 5xx สมมติว่าเฉพาะกรณีเมื่อ db หยุดทำงานในแอปพลิเคชัน Spring ทั้งหมดของฉัน ฉันต้องการข้อผิดพลาด json แทนการติดตามสแต็ก สำหรับคอนโทรลเลอร์ฉันมี@ControllerAdviceคลาสสำหรับข้อยกเว้นที่แตกต่างกันและนี่ก็เป็นการจับกรณีที่ db หยุดอยู่ตรงกลางของคำขอ แต่นี่ไม่ใช่ทั้งหมด. ฉันยังมีส่วนCorsFilterขยายที่กำหนดเองOncePerRequestFilterและที่นั่นเมื่อฉันโทรหาdoFilterฉันได้รับCannotGetJdbcConnectionExceptionและจะไม่ได้รับการจัดการโดยไฟล์@ControllerAdvice. ฉันอ่านหลายสิ่งทางออนไลน์ซึ่งทำให้ฉันสับสนมากขึ้นเท่านั้น ดังนั้นฉันจึงมีคำถามมากมาย: ฉันต้องติดตั้งตัวกรองแบบกำหนดเองหรือไม่? ฉันพบExceptionTranslationFilterแต่สิ่งนี้จัดการได้AuthenticationExceptionหรือAccessDeniedException. ฉันคิดว่าจะใช้ของฉันเองHandlerExceptionResolverแต่ทำให้ฉันสงสัยฉันไม่มีข้อยกเว้นที่กำหนดเองในการจัดการต้องมีวิธีที่ชัดเจนกว่านี้ ฉันยังพยายามเพิ่ม try / catch และเรียกการใช้งานHandlerExceptionResolver(ควรจะดีพอข้อยกเว้นของฉันไม่มีอะไรพิเศษ) แต่สิ่งนี้ไม่ส่งคืนอะไรเลยในการตอบกลับฉันได้รับสถานะ 200 และเนื้อความว่างเปล่า มีวิธีใดที่ดีในการจัดการกับปัญหานี้หรือไม่? ขอบคุณ

18
จะตรวจสอบ“ hasRole” ใน Java Code ด้วย Spring Security ได้อย่างไร
จะตรวจสอบสิทธิ์ของผู้ใช้หรือสิทธิ์ใน Java Code ได้อย่างไร? ตัวอย่างเช่น - ฉันต้องการแสดงหรือซ่อนปุ่มสำหรับผู้ใช้โดยขึ้นอยู่กับบทบาท มีคำอธิบายประกอบเช่น: @PreAuthorize("hasRole('ROLE_USER')") จะสร้างในโค้ด Java ได้อย่างไร? สิ่งที่ต้องการ : if(somethingHere.hasRole("ROLE_MANAGER")) { layout.addComponent(new Button("Edit users")); }

6
วิธีตั้งค่าผู้ใช้ที่พิสูจน์ตัวตนด้วยตนเองใน Spring Security / SpringMVC
หลังจากผู้ใช้ใหม่ส่งแบบฟอร์ม 'บัญชีใหม่' ฉันต้องการล็อกอินผู้ใช้นั้นด้วยตนเองเพื่อที่พวกเขาจะได้ไม่ต้องเข้าสู่ระบบในหน้าถัดไป หน้าล็อกอินแบบฟอร์มปกติที่ผ่านตัวสกัดกั้นการรักษาความปลอดภัยแบบสปริงทำงานได้ดี ในตัวควบคุมรูปแบบบัญชีใหม่ฉันกำลังสร้าง UsernamePasswordAuthenticationToken และตั้งค่าใน SecurityContext ด้วยตนเอง: SecurityContextHolder.getContext().setAuthentication(authentication); ในหน้าเดียวกันนั้นฉันตรวจสอบในภายหลังว่าผู้ใช้เข้าสู่ระบบด้วย: SecurityContextHolder.getContext().getAuthentication().getAuthorities(); สิ่งนี้ส่งคืนหน่วยงานที่ฉันตั้งไว้ก่อนหน้านี้ในการตรวจสอบสิทธิ์ ทั้งหมดเป็นอย่างดี. แต่เมื่อมีการเรียกรหัสเดียวกันนี้ในหน้าถัดไปที่ฉันโหลดโทเค็นการตรวจสอบความถูกต้องจะเป็นเพียง UserAnonymous ฉันไม่ชัดเจนว่าเหตุใดจึงไม่เก็บการรับรองความถูกต้องที่ฉันตั้งไว้ในคำขอก่อนหน้านี้ ความคิดใด ๆ ? เป็นไปได้ไหมว่ารหัสเซสชันไม่ได้รับการตั้งค่าอย่างถูกต้อง? มีบางอย่างที่อาจเขียนทับการรับรองความถูกต้องของฉันหรือไม่? บางทีฉันอาจต้องการขั้นตอนอื่นเพื่อบันทึกการรับรองความถูกต้อง? หรือมีบางอย่างที่ฉันต้องทำเพื่อประกาศการรับรองความถูกต้องทั่วทั้งเซสชันแทนที่จะร้องขอเพียงครั้งเดียว แค่มองหาความคิดบางอย่างที่อาจช่วยให้ฉันเห็นว่าเกิดอะไรขึ้นที่นี่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.