shiro-uaa เป็นบริการบัญชีผู้ใช้ขนาดเล็กและบริการตรวจสอบตัวตน (UAA) ที่ใช้ Shiro
เมื่อคุณเริ่มโปรเจ็กต์ครั้งแรก ฉันเชื่อว่าความเรียบง่ายของ Shiro จะกลายเป็นตัวเลือกแรกสำหรับเฟรมเวิร์กการอนุญาตของนักพัฒนาส่วนใหญ่ อย่างไรก็ตาม เมื่อโปรเจ็กต์ขยายจาก 1 เป็น n และต้องมีการตรวจสอบสิทธิ์และการอนุญาตแบบรวมศูนย์ ตัว Shiro เองก็ไม่รองรับการตรวจสอบสิทธิ์และการอนุญาตแบบรวมศูนย์ . กลายเป็นข้อจำกัด Shiro มี CasFilter แต่ CAS ก็เป็นอีกชุดหนึ่งของเฟรมเวิร์กที่หนักกว่า เพื่อให้บริการตรวจสอบสิทธิ์และการอนุญาตง่ายขึ้น เบาขึ้น และใช้งานง่ายขึ้น Shiro-UAA จึงถูกสร้างขึ้น
เซิร์ฟเวอร์ UAA น้ำหนักเบา
เพียว ชิโระ
ง่ายต่อการเรียนรู้
ง่ายต่อการขยาย
พร้อมออกจากกล่อง
1.เซิร์ฟเวอร์รับรองความถูกต้อง
มาเวน
<การพึ่งพา> <groupId>com.github.xfslove</groupId> <artifactId>shiro-uaa-resource-server</artifactId> <version>1.0.7-SNAPSHOT</version></dependency>จุดสิ้นสุดในตัว
คำอธิบายที่อยู่ URI/uaa-auth/authenticationที่อยู่สำหรับการร้องขอการอนุญาตจะถูกส่งไปยังหน้าเข้าสู่ระบบของคุณ/uaa-auth/authentication/apporveAuth เซิร์ฟเวอร์ตกลงที่จะอนุญาตและแจกจ่ายที่อยู่รหัส/uaa-auth/access-token เพื่อรับการเข้าถึงจาก ที่อยู่โทเค็นเซิร์ฟเวอร์รับรองความถูกต้อง/ที่อยู่ uaa-auth/ออกจากระบบเพื่อออกจากระบบเซิร์ฟเวอร์รับรองความถูกต้องAPI ที่ขยายได้
คำอธิบายชื่ออินเทอร์เฟซ AccessClientService บริการแอปพลิเคชันการเข้าถึง AccessTokenService บริการโทเค็นการเข้าถึง บริการผู้ใช้ AccountService บริการ AuthCodeServicecode บริการบทบาท RoleServiceเข้าสู่ระบบ
ปรับแต่งหน้าเข้าสู่ระบบและการยืนยันการเข้าสู่ระบบ ใช้ org.apache.shiro.authc.credential.CredentialsMatcher ใช้ตรรกะการตรวจสอบในระหว่างการเข้าสู่ระบบ และกำหนดค่า shiro.loginUrl
ข้อผิดพลาดไปข้างหน้า
ตามค่าเริ่มต้น เมื่อ OAuthProblem เกิดขึ้นบนเซิร์ฟเวอร์ ระบบจะข้ามไปยังที่อยู่ทรัพยากร (พารามิเตอร์ redirect_uri) พร้อมข้อมูลข้อผิดพลาด หากมีการกำหนดค่า forwardErrorUrl ก็จะไม่เปลี่ยนเส้นทางและแสดงหน้าข้อผิดพลาด .uaa .server.forwardErrorUrl จุดประสงค์ของการกำหนดค่านี้คือเพื่อป้องกันการข้ามที่ผิดปกติโดยใช้เซิร์ฟเวอร์
พารามิเตอร์การกำหนดค่าเพิ่มเติม
พารามิเตอร์ชื่อคำอธิบาย shiro.uaa.server.codeExpiresUAA การกระจาย รหัสเวลาหมดอายุ หน่วยเป็นวินาที shiro.uaa.server.accessTokenExpiresUAA การกระจาย AccessToken เวลาหมดอายุ หน่วยเป็นวินาที shiro.uaa.server.refreshTokenExpiresUAA การกระจาย RefreshToken เวลาหมดอายุ หน่วยคือ shiro วินาที LoginUrl ที่อยู่เข้าสู่ระบบที่กำหนดเอง shiro.uaa.server.clien ts[].name ชื่อแอปพลิเคชันการเข้าถึง ใช้ได้เมื่อใช้หน่วยความจำเริ่มต้น AccessClientService shiro.uaa.server.clients[].clientId แอปพลิเคชันการเข้าถึง clientId ถูกต้องเมื่อใช้หน่วยความจำเริ่มต้น AccessClientService shiro.uaa.server.clients[].clientSecret ป้อนแอปพลิเคชัน clientSecret ซึ่งใช้ได้เมื่อใช้หน่วยความจำเริ่มต้น AccessClientService shiro.uaa.ser ver.roles[].name ชื่อบทบาทของ Shiro ถูกต้องเมื่อใช้หน่วยความจำเริ่มต้น RoleService shiro.uaa.server.roles[].permCodes[] การอนุญาตตามบทบาท สอดคล้องกับการอนุญาตของ Shiro ถูกต้องเมื่อใช้หน่วยความจำเริ่มต้น RoleService shiro. uaa.server.roles[].clientId แอปพลิเคชันที่มีบทบาทนั้นถูกต้องเมื่อใช้หน่วยความจำเริ่มต้น RoleService shiro.uaa.server.accoun ts[].ชื่อผู้ใช้ ชื่อเข้าสู่ระบบบัญชี ใช้ได้เมื่อใช้หน่วยความจำเริ่มต้น AccountService shiro.uaa.server.accounts[].password รหัสผ่านบัญชี ใช้ได้เมื่อใช้หน่วยความจำเริ่มต้น AccountService shiro.uaa.server.accounts[].roles[] บทบาทที่เป็นเจ้าของบัญชี ใช้ได้เมื่อใช้หน่วยความจำเริ่มต้น AccountService shiro.uaa.server.forwardErrorUrl OAuthProblem ที่กำหนดเอง ที่อยู่ข้อผิดพลาด2.ทรัพยากร-เซิร์ฟเวอร์
มาเวน
<การพึ่งพา> <groupId>com.github.xfslove</groupId> <artifactId>shiro-uaa-resource-server</artifactId> <version>1.0.7-SNAPSHOT</version></dependency>filterChainDefinition
ใช้ CustomFilterChainDefinition กำหนดเส้นทางที่แตกต่างกันเพื่อผ่านตัวกรองที่แตกต่างกัน ค่าดีฟอลต์ /** ส่งผ่าน resourcesServerFilter
ออกจากระบบ
ออกจากระบบเซิร์ฟเวอร์ทรัพยากรก่อน จากนั้นออกจากระบบ UAA กำหนดค่าพารามิเตอร์ shiro.logoutUrl เพื่อโหลด LogoutEndpoint
คำอธิบายประกอบ
เช่นเดียวกับชิโระ
ชื่อคำอธิบายประกอบ@RequiresRoles@RequiresPermissions@RequiresUser@RequiresAuthentication@RequiresGuestพารามิเตอร์การกำหนดค่าเพิ่มเติม
คำอธิบายชื่อพารามิเตอร์ shiro.uaa.resource.serverSchemeshiro.uaa.resource.serverHostUAA ที่อยู่ของ Schemeshiro.uaa.resource.serverPortUAA addressPortshiro.uaa.resource.s ที่อยู่ erverContextPathUAA ContextPathshiro.uaa.resource.clientIdUAA ที่กำหนด ClientIdshiro.uaa.resource.clientSecretUAA ที่กำหนด ClientSecretshiro.logoutUrlResource ที่อยู่ล็อกเอาต์ของเซิร์ฟเวอร์3. บิสล็อกเกอร์
บันทึกบันทึกทางธุรกิจของผู้ใช้
<การพึ่งพา> <groupId>com.github.xfslove</groupId> <artifactId>shiro-uaa-biz-logger</artifactId> <version>1.0.7-SNAPSHOT</version></dependency>คำอธิบายประกอบ
ชื่อคำอธิบายประกอบ @BizLogger คำอธิบายวิธีการอธิบายหมายเหตุ หมายเหตุ ค่าเริ่มต้น: ""class_ไม่ว่าจะบันทึกชื่อคลาส ค่าเริ่มต้น: truemethod ว่าจะบันทึกชื่อวิธีการหรือไม่ ค่าเริ่มต้น: truearguments จำเป็นต้องบันทึกดัชนีของพารามิเตอร์ ค่าเริ่มต้น: {}return_whether เพื่อบันทึก ค่าที่ส่งคืน ค่าเริ่มต้น :falsesubjectไม่ว่าจะบันทึกชื่อผู้ใช้ ค่าเริ่มต้น: trueBizLoggerEntityStringifier
ใช้ BizLoggerEntityStringifier ปรับแต่งเนื้อหาเอาต์พุตของตัวบันทึก
jdk1.8+ และสปริงบูต
ให้บริการปรับใช้เซิร์ฟเวอร์การตรวจสอบสิทธิ์
จัดเตรียมการวัดผู้ใช้ให้กับเซิร์ฟเวอร์การตรวจสอบสิทธิ์