2014-07-11 2 views
0

http : // basic으로 로그인하고 있는데이 내용은 http://howtodoinjava.com/2013/04/16/login-form-based-spring-3-security-example/ 이고 제대로 작동하지만로드하려고하면 내 페이지가 http 상태 406이됩니다. 사례가 있지만 그 중 아무 것도 작동하지 않습니다 (아마 내가 가능한 한 가까이에 구현했기 때문일 수 있습니다). 감사스프링 보안 HTTP 상태 406

이이 내 응용 프로그램-security.xml이다 반환 여전히이 templateController입니다

@Controller 
@RequestMapping(value = "/request") 
public class RequestController { 

@Autowired 
private UploadFileService uploadFileService; 

@RequestMapping(value = "", method = RequestMethod.GET) 
public ModelAndView index() { 
    return new ModelAndView("page/request-view-table-req"); 
} 

@RequestMapping(value = "/upload", method = RequestMethod.POST) 
public String upload(@RequestParam("file") MultipartFile file) { 
    try { 
     if (file.getOriginalFilename().endsWith("XLS") || file.getOriginalFilename().endsWith("xls")) { 
      Excel excel = new Excel(file); 
      excel.convertToUF(); 
      uploadFileService.add(excel.getListUF()); 
     } 
     return "redirect:/"; 

    } catch (NullPointerException ex) { 
     return "redirect:/"; 
    } 
} 
} 

잘 작동 내 requestController HTTP 상태 406

@Controller 
@RequestMapping(value = "/template") 
public class TemplateController { 

@Autowired 
private RequestTemplateService requestTemplateService; 

@RequestMapping(value = "", method = RequestMethod.GET) 
@ResponseBody 
public ModelAndView templateView(Model model) { 
    list_all_template(model); 
    return new ModelAndView("page/template-add"); 
} 

@RequestMapping(value = "/add", method = RequestMethod.GET) 
@ResponseBody 
public ModelAndView templateAdd(Model model) { 
    list_all_template(model); 
    return new ModelAndView("page/template-add"); 
} 

@RequestMapping(value = "/add/new", method = RequestMethod.POST) 
@ResponseBody 
public String addTemplate(@ModelAttribute RequestTemplate rt, Model model) { 
    requestTemplateService.add(rt); 
    list_all_template(model); 
    return "redirect:/template"; 
} 

@RequestMapping(value="/delete", method = RequestMethod.GET) 
@ResponseBody 
public ModelAndView deleteSelected (@RequestParam(value = "nama", required = true) String nama, 
            Model model) 
{ 
    delete_by_nama(nama); 
    list_all_template(model); 
    return new ModelAndView("page/template-add"); 
} 

@RequestMapping(value="/update", method = RequestMethod.GET) 
@ResponseBody 
public ModelAndView updateSelected (@RequestParam(value = "nama", required = true) String nama, 
            @RequestParam(value = "template") String template, 
            Model model) 
{ 
    requestTemplateService.updateByNama(nama, template); 
    list_all_template(model); 
    return new ModelAndView("page/template-view"); 
} 

@RequestMapping(value="/view", method = RequestMethod.GET) 
@ResponseBody 
public ModelAndView viewSelected (@RequestParam(value = "nama", required = true) String nama, 
            HttpServletRequest request, HttpServletResponse response, Model model) 
{ 
    list_all_template(model); 
    get_template_by_name(model, nama); 
    return new ModelAndView("page/template-view"); 
} 

public void delete_by_nama(String nama) { 
    requestTemplateService.deleteByNama(nama); 
} 

public void get_template_by_name(Model model, String nama) { 
    List<RequestTemplate> selectedTemplate = requestTemplateService.getByNama(nama); 
    model.addAttribute("selectedTemplate", selectedTemplate); 
} 

public void list_all_template(Model model) { 
    List<RequestTemplate> RequestTemplates = requestTemplateService.findAll(); 
    model.addAttribute("RequestTemplates", RequestTemplates); 
} 
} 

입니다

<?xml version="1.0" encoding="UTF-8"?> 
<beans:beans xmlns="http://www.springframework.org/schema/security" 
     xmlns:beans="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
     http://www.springframework.org/schema/security 
     http://www.springframework.org/schema/security/spring-security-3.0.3.xsd"> 

<http auto-config="true" use-expressions="true"> 
    <intercept-url pattern="/login" access="permitAll" /> 
    <intercept-url pattern="/logout" access="permitAll" /> 
    <intercept-url pattern="/accessdenied" access="permitAll" /> 
    <intercept-url pattern="/**" access="hasRole('ROLE_USER')" /> 
    <form-login login-page="/login" default-target-url="/denied" authentication-failure-url="/accessdenied" /> 
    <logout logout-success-url="/logout" /> 
</http> 

<authentication-manager alias="authenticationManager"> 
    <authentication-provider> 
     <user-service> 
      <user name="lokesh" password="password" authorities="ROLE_USER" /> 
     </user-service> 
    </authentication-provider> 
</authentication-manager> 

</beans:beans> 

this is spring-context.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:tx="http://www.springframework.org/schema/tx" 
    xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 
    http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
    http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd 
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"> 

<mvc:annotation-driven/> 
<mvc:resources mapping="/resources/**" location="/resources/" /> 

<!-- Scan classpath for annotations (eg: @Service, @Repository etc) --> 
<context:component-scan base-package="com.kartuku.somuploader, com.kartuku.somuploader.controller, com.kartuku.somuploader.service, com.kartuku.somuploader.model"/> 

<!-- Resolve view name into jsp file located on /WEB-INF --> 
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix" value="/WEB-INF/views/" /> 
    <property name="suffix" value=".jsp" /> 
</bean> 

<!-- MySQL Datasource with Commons DBCP connection pooling --> 
<bean class="org.apache.commons.dbcp.BasicDataSource" id="dataSource"> 
    <property name="driverClassName" value="com.mysql.jdbc.Driver"/> 
    <property name="url" value="jdbc:mysql://localhost:3306/prosom"/> 
    <property name="username" value="root"/> 
    <property name="password" value=""/> 
</bean> 

<!-- EntityManagerFactory --> 
<bean class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" id="entityManagerFactory"> 
    <property name="persistenceUnitName" value="persistenceUnit"/> 
    <property name="dataSource" ref="dataSource"/> 
</bean> 

<!-- Transaction Manager --> 
<bean class="org.springframework.orm.jpa.JpaTransactionManager" id="transactionManager"> 
    <property name="entityManagerFactory" ref="entityManagerFactory"/> 
</bean> 

<!-- another bean --> 
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
    <property name="maxUploadSize" value="10000000"/> 
</bean> 

<!-- Enable @Transactional annotation --> 
<tx:annotation-driven/> 

</beans> 

답변

0

TemplateController에서 @ResponseBody을 삭제 해보세요. 이것은 스프링 보안과 관련된 문제가 아닐 수 있습니다.

+0

감사합니다. 완벽하게 작동하므로 보안 문제가 아닙니다. 제목이나 태그를 변경해야합니까? 이것이 정확히 무엇이되어야 하는가? – user3828892

+0

'@ ResponseBody'는이 경우에 오용되고 있습니다. @ ResponseBody를 사용하는 방법은 [here] (http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-ann-responsebody)를 참조하십시오. –