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

Spring Framework เป็นเฟรมเวิร์กโอเพนซอร์ซสำหรับการพัฒนาแอพพลิเคชั่นบนแพลตฟอร์ม Java ที่แกนกลางของมันคือการสนับสนุนที่หลากหลายสำหรับสถาปัตยกรรมที่ใช้ส่วนประกอบและในปัจจุบันมีโมดูลรวมมากกว่ายี่สิบโมดูล

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

10
Spring 3 RequestMapping: รับค่าพา ธ
มีวิธีรับค่าเส้นทางที่สมบูรณ์หลังจากrequestMapping @PathVariableแยกวิเคราะห์ค่าแล้วหรือไม่ นั่นคือ: /{id}/{restOfTheUrl}ควรจะสามารถที่จะแยก/1/dir1/dir2/file.htmlออกเป็นid=1และrestOfTheUrl=/dir1/dir2/file.html ความคิดใด ๆ ที่จะได้รับการชื่นชม


15
เข้าถึงไฟล์คุณสมบัติโดยทางโปรแกรมด้วย Spring?
เราใช้โค้ดด้านล่างเพื่อฉีด Spring beans ด้วยคุณสมบัติจากไฟล์คุณสมบัติ <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations" value="classpath:/my.properties"/> </bean> <bean id="blah" class="abc"> <property name="path" value="${the.path}"/> </bean> มีวิธีที่เราสามารถเข้าถึงคุณสมบัติโดยทางโปรแกรมหรือไม่? ฉันพยายามทำโค้ดโดยไม่ต้องพึ่งพาการฉีด ดังนั้นฉันต้องการเพียงแค่มีโค้ดดังนี้: PropertyPlaceholderConfigurer props = new PropertyPlaceholderConfigurer(); props.load("classpath:/my.properties"); props.get("path");
139 spring  properties 

5
Autowiring ถั่วสองตัวที่ใช้อินเทอร์เฟซเดียวกัน - วิธีตั้งค่า bean เริ่มต้นเป็น autowire อัตโนมัติอย่างไร
พื้นหลัง: ฉันมีแอปพลิเคชัน Spring 2.5 / Java / Tomcat มีถั่วต่อไปนี้ซึ่งใช้ทั่วทั้งแอปพลิเคชั่นในหลาย ๆ ที่ public class HibernateDeviceDao implements DeviceDao และถั่วต่อไปนี้ซึ่งเป็นของใหม่: public class JdbcDeviceDao implements DeviceDao bean แรกถูกกำหนดค่าให้ดังนั้น (beans ทั้งหมดในแพ็คเกจถูกรวมไว้) <context:component-scan base-package="com.initech.service.dao.hibernate" /> ถั่วที่สอง (ใหม่) ถูกกำหนดค่าแยกกัน <bean id="jdbcDeviceDao" class="com.initech.service.dao.jdbc.JdbcDeviceDao"> <property name="dataSource" ref="jdbcDataSource"> </bean> ผลลัพธ์นี้ (แน่นอน) มีข้อยกเว้นเมื่อเริ่มต้นเซิร์ฟเวอร์: ข้อยกเว้นแบบซ้อนคือ org.springframework.beans.factory.NoSuchBeanDefinitionException: ไม่มีถั่วที่ไม่ซ้ำประเภท [com.sevenp.mobile.samplemgmt.service.dao.DeviceDao] พบถั่วที่จับคู่เดี่ยว แต่พบ 2: [deviceDao, …

15
ฤดูใบไม้ผลิ - ไม่มี EntityManager ที่มีการทำธุรกรรมจริงสำหรับเธรดปัจจุบัน - ไม่สามารถดำเนินการเรียก 'คงอยู่' ได้อย่างน่าเชื่อถือ
ฉันได้รับข้อผิดพลาดนี้เมื่อพยายามเรียกใช้วิธี "คงอยู่" เพื่อบันทึกโมเดลเอนทิตีลงในฐานข้อมูลในเว็บแอปพลิเคชัน Spring MVC ของฉัน ไม่พบโพสต์หรือหน้าใด ๆ ในอินเทอร์เน็ตที่สามารถเกี่ยวข้องกับข้อผิดพลาดนี้โดยเฉพาะ ดูเหมือนว่ามีบางอย่างผิดปกติกับ EntityManagerFactory bean แต่ฉันค่อนข้างใหม่ในการเขียนโปรแกรม Spring ดังนั้นสำหรับฉันดูเหมือนว่าทุกอย่างจะเริ่มต้นได้ดีและอ้างอิงจากบทความการสอนต่างๆในเว็บ มอบหมายงาน-servlet.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:jpa="http://www.springframework.org/schema/data/jpa" xsi:schemaLocation=" http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-3.2.xsd http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd http://www.springframework.org/schema/data/repository http://www.springframework.org/schema/data/repository/spring-repository-1.5.xsd http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.2.xsd"> <context:component-scan base-package="wymysl.Controllers" /> <jpa:repositories base-package="wymysl.repositories"/> <context:component-scan base-package="wymysl.beans" /> <context:component-scan base-package="wymysl.Validators" …

17
Spring boot - ไม่ใช่ประเภทที่มีการจัดการ
ฉันใช้ Spring boot + JPA และมีปัญหาขณะเริ่มบริการ Caused by: java.lang.IllegalArgumentException: Not an managed type: class com.nervytech.dialer.domain.PhoneSettings at org.hibernate.jpa.internal.metamodel.MetamodelImpl.managedType(MetamodelImpl.java:219) at org.springframework.data.jpa.repository.support.JpaMetamodelEntityInformation.<init>(JpaMetamodelEntityInformation.java:68) at org.springframework.data.jpa.repository.support.JpaEntityInformationSupport.getMetadata(JpaEntityInformationSupport.java:65) at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getEntityInformation(JpaRepositoryFactory.java:145) at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:89) at org.springframework.data.jpa.repository.support.JpaRepositoryFactory.getTargetRepository(JpaRepositoryFactory.java:69) at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:177) at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.initAndReturn(RepositoryFactoryBeanSupport.java:239) at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:225) at org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean.afterPropertiesSet(JpaRepositoryFactoryBean.java:92) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1625) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1562) นี่คือไฟล์ Application.java @Configuration @ComponentScan @EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class }) @SpringBootApplication public …

12
@Scope (“ ต้นแบบ”) ขอบเขตของ bean ไม่ได้สร้าง bean ใหม่
ฉันต้องการใช้ Bean ต้นแบบที่มีคำอธิบายประกอบในคอนโทรลเลอร์ของฉัน แต่ฤดูใบไม้ผลิกำลังสร้างถั่วซิงเกิลตันแทน นี่คือรหัสสำหรับ: @Component @Scope("prototype") public class LoginAction { private int counter; public LoginAction(){ System.out.println(" counter is:" + counter); } public String getStr() { return " counter is:"+(++counter); } } รหัสคอนโทรลเลอร์: @Controller public class HomeController { @Autowired private LoginAction loginAction; @RequestMapping(value="/view", method=RequestMethod.GET) public ModelAndView display(HttpServletRequest req){ ModelAndView mav …
136 spring  spring-mvc 

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อย่างไร

10
จะอ่านค่าจากไฟล์คุณสมบัติได้อย่างไร?
ฉันใช้สปริง ฉันต้องการอ่านค่าจากไฟล์คุณสมบัติ นี่คือไฟล์คุณสมบัติภายในไม่ใช่ไฟล์คุณสมบัติภายนอก ไฟล์ Properties ได้ตามด้านล่าง some.properties ---file name. values are below. abc = abc def = dsd ghi = weds jil = sdd ฉันต้องการอ่านค่าเหล่านั้นจากไฟล์คุณสมบัติไม่ใช่แบบดั้งเดิม จะบรรลุได้อย่างไร? มีแนวทางล่าสุดเกี่ยวกับสปริง 3.0 หรือไม่?

7
Spring Java Config: คุณสร้าง @Bean ต้นแบบที่มีอาร์กิวเมนต์รันไทม์ได้อย่างไร
ด้วยการใช้ Java Config ของ Spring ฉันจำเป็นต้องได้รับ / สร้างอินสแตนซ์ถั่วที่กำหนดขอบเขตต้นแบบด้วยอาร์กิวเมนต์ตัวสร้างที่หาได้ในรันไทม์เท่านั้น พิจารณาตัวอย่างโค้ดต่อไปนี้ (ย่อให้สั้นลง): @Autowired private ApplicationContext appCtx; public void onRequest(Request request) { //request is already validated String name = request.getParameter("name"); Thing thing = appCtx.getBean(Thing.class, name); //System.out.println(thing.getName()); //prints name } โดยที่คลาส Thing ถูกกำหนดไว้ดังนี้: public class Thing { private final String name; @Autowired private SomeComponent …

10
Java Spring Boot: จะแมปรูทแอปของฉัน (“ /”) กับ index.html ได้อย่างไร?
ฉันเพิ่งเริ่มใช้ Java และ Spring ฉันจะแมปรูทแอปของฉันhttp://localhost:8080/กับแบบคงที่ได้index.htmlอย่างไร ถ้าฉันไปที่http://localhost:8080/index.htmlมันใช้งานได้ดี โครงสร้างแอปของฉันคือ: ของฉันconfig\WebConfig.javaมีลักษณะดังนี้: @Configuration @EnableWebMvc @ComponentScan public class WebConfig extends WebMvcConfigurerAdapter { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/**").addResourceLocations("/"); } } ฉันพยายามเพิ่มregistry.addResourceHandler("/").addResourceLocations("/index.html");แต่มันล้มเหลว
134 java  spring  spring-boot 

12
ฉันจะเปิดใช้งานโปรไฟล์ Spring Boot ได้อย่างไรเมื่อเรียกใช้จาก IntelliJ
ฉันมี 5 สภาพแวดล้อม: - local (my development machine) - dev - qc - uat - live - staging ฉันต้องการใช้คุณสมบัติแอปพลิเคชันที่แตกต่างกันสำหรับแต่ละสภาพแวดล้อมดังนั้นฉันมีไฟล์คุณสมบัติต่อไปนี้ซึ่งแต่ละไฟล์มี URL ที่แตกต่างกันสำหรับแหล่งข้อมูล: - application.properties (containing common properties) - application-local.properties - application-dev.properties - application-qc.properties - application-uat.properties - application-live.properties ฉันใช้ IntelliJ และเรียกใช้แอปของฉันโดยใช้ bootRun ในปลั๊กอิน Gradle บนเครื่องของฉัน ฉันจะใช้การปรับใช้ไฟล์แอปพลิเคชั่นไฟล์เดียวกันบนสภาพแวดล้อมอื่น ๆ ทั้งหมดที่รัน Tomcat ฉันได้ลองเพิ่ม: --spring.profiles.active = …

8
คำอธิบายประกอบของ @Service ควรเก็บไว้ที่ไหน อินเทอร์เฟซหรือการใช้งาน?
ฉันกำลังพัฒนาแอปพลิเคชันโดยใช้ Spring ฉันจำเป็นต้องใช้@Serviceคำอธิบายประกอบ ฉันมีServiceIและดังกล่าวว่าServiceImpl ServiceImpl implements ServiceIฉันสับสนตรงนี้ว่าฉันควรเก็บ@Serviceคำอธิบายประกอบไว้ที่ไหน ฉันควรใส่คำอธิบายประกอบอินเทอร์เฟซหรือการใช้งานด้วย@Service? อะไรคือความแตกต่างระหว่างสองแนวทางนี้?
133 spring  service 

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

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